[ 
http://dev.sourcefabric.org/browse/LS-268?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15539#action_15539
 ] 

David Baelde commented on LS-268:
---------------------------------

Hi Romain! Thanks a lot for pointing it out.

I remember our conclusions in the discussion about namespace (un)registration, 
so my first reaction was: Yeeeepee, so many headaches go away, we didn't really 
need to deal with re-awakening, checking that threads have exited, etc.

However I'm afraid the truth is that the old difficult code is justified and we 
overlooked the issue the other day. (As a result we'll get a failed assertion 
because we don't reset the namespace to [] after unregistering it.) Here's how 
to re-awaken:
  p = playlist(...)
  x = output.dummy(...)
At this point, the output has started automatically, it's been woken up, and it 
woke up p. Later on, execute this code:
  source.shutdown(x)
Now x and p have been stopped and put to sleep, which is necessary to make 
garbage collection possible. However, in that case we can re-enable them:
  output.dummy(p)
The new output starts automatically and re-awakens p. We can also do 
output.dummy(x), even though it feels weird. The really weird thing is that the 
only way to startup an active source is implicit upon creation.

> Clean thread management for input.http() (and input.harbor())
> -------------------------------------------------------------
>
>                 Key: LS-268
>                 URL: http://dev.sourcefabric.org/browse/LS-268
>             Project: Liquidsoap
>          Issue Type: Bug
>          Components: Liquidsoap
>            Priority: Blocker
>
> Currently, when an input.http goes to #sleep, it asks its feeding thread to 
> exit, but does not check that it exited. As a consequence, a #wake_up quickly 
> after the #sleep could cause (1) the old thread to not exit and hence (2) two 
> feeding threads at the same time.
> (Another slightly related issue is that the feeding thread might have 
> non-trivial activity during the shutdown phase: it can be in the middle of a 
> connection when shutdown starts, and we have to wait for it to start decoding 
> before that it notices that it should exit.)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://dev.sourcefabric.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

------------------------------------------------------------------------------
Create and publish websites with WebMatrix
Use the most popular FREE web apps or write code yourself; 
WebMatrix provides all the features you need to develop and 
publish your website. http://p.sf.net/sfu/ms-webmatrix-sf
_______________________________________________
Savonet-devl mailing list
Savonet-devl@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-devl

Répondre à