[vlc-devel] [patch] VLCKit: exhaustive fix of VLCEventManager crashes, deadlocks and other issues

Florent Pillet fpillet at gmail.com
Wed Jun 25 10:36:57 CEST 2014


On 25 Jun 2014, at 01:16, Felix Paul Kühne <fkuehne at videolan.org> wrote:

> Would you mind splitting your patch in 4 parts according to the information shared in your email?

Ouch. Well, okay. Quite some additional work involved actually as things are very much intertwined but sure. Multiple patches will have to be applied in order of course, as they all add up to the same file and sometimes to the same section of code.

> Additionally, please submit a proper .patch file including authorship information, so we can merge your work correctly including but not limited to retaining your copyright and authorship rights.

Guess I didn't read the VLC guidelines for submitting patches at all. Will fix that, thanks for the heads up.

>> - using @autoreleasepool instead of the old NSAutoreleasePool.
>> Easier to read, slightly improves performance
> 
> Can you elaborate how this is faster? isn't just a different syntax for the same runtime feature? (I prefer the modern syntax you implemented, I'm not questioning this patch :))

Besides being easier to read, I mentioned "slightly" because NSAutoreleasePool is now just a wrapper around calling the internal objc runtime functions that manage autorelease pools. So the alloc / init / release combo is just overhead. No big deal but yes, since you moved some of the code (i.e array indexed access) to the modern Obj-C syntax, I assumed this would be fine too.

>> I am using VLCKit in some stressing conditions for the framework, and it generally behaves
>> pretty well. This patch improves stability of this layer by a large factor.
> 
> Can you share the app name you are working on? Would be interesting for our "who is using VLCKit?" list :)

This is a custom project (not a generally available application) running in a luxury hotel. Basically, hidden Macs are the ones being used to generate the TV user interface in each room. VLCKit is the back-end used to play video and music, so there's a lot of back-and-forth activity when users quickly switch from one channel to the other, hence the stress put on the framework.

Florent




More information about the vlc-devel mailing list