[vlc-devel] [PATCH] p2p-streaming module for VLC
Rémi Denis-Courmont
remi at remlab.net
Thu Nov 4 22:18:03 CET 2010
Le jeudi 4 novembre 2010 23:02:45 David Fuhrmann, vous avez écrit :
> Am 04.11.2010 um 21:04 schrieb Rémi Denis-Courmont:
> > The use of singletons all over the place is suspicious. How is
> > re-entrancy handled?
>
> Sorry, what do you mean exactly?
How does this work if more than one thread tries to instantiate the access or
access_output at the same time?
> > I spot thirty two thread creations
>
> That is wrong. We only create 4 threads at startup, not more.
Sure. You have cut&pasted the code 8 times, that makes 8*4=32
vlc_thread_create() thread creation code paths.
> > yet not a single mutex. This is odd.
>
> The class DataStore saves all data, which should be accessible in all
> threads. As only one thread (controllerThread) writes on these values, we
> saw no need to use mutexes.
VLC uses the POSIX memory synchronization model, as defined at
http://www.opengroup.org/onlinepubs/9699919799/xrat/V4_xbd_chap04.html
section A.4.11.
> > And then, we do not allow fixed msleep(), at least not within loops.
>
> We need to do some actions periodically, so we used msleep(). What else
> could be used with the same effect?
Normally you would use condition variables. Besides, msleep() cannot provide
atomic access and is not a portable mechanism of memory synchronization.
--
Rémi Denis-Courmont
http://www.remlab.net/
http://fi.linkedin.com/in/remidenis
More information about the vlc-devel
mailing list