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

Felix Paul Kühne fkuehne at videolan.org
Wed Jun 25 01:16:34 CEST 2014

Hey Florent,

Thanks a lot for your work.

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

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.
On 24.06.2014, at 14:50, Florent Pillet <fpillet at gmail.com> wrote:

> - 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 :))

> - fixed an issue where a messages's target, and further the target's delegate
>  were not being retained for the duration of the delegate's selector callback.
>  This could lead to crashes if the code executed by the delegate was leading
>  to releasing the delegate itself prior to executing other methods (I can give
>  a complete explanation for this with examples if needed)
> - fixed a deadlock that occurred under some severe conditions (most developers
>  don't stress VLCKit that much, but I do) due to cancelling messages the had the side
>  effect of releasing other objects which themselves tried to cancel their own messages.
>  Parties involved were VLCMediaPlayer and VLCMedia, complete explanation of the issue
>  with resolution is in the -cancelCallToObject: method.


> - fixed a crash due to over-releasing secondary objects (arguments, notification name)
>  even though the message may have been cancelled before execution and these components
>  already released.


> 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 :)



More information about the vlc-devel mailing list