crucialfelix / crucial-library

SuperCollider music programming library.
17 stars 4 forks source link

Spurious warning on library recompile #9

Open jamshark70 opened 7 years ago

jamshark70 commented 7 years ago

https://github.com/crucialfelix/crucial-library/blob/master/Instr/InstrSynthDef.sc#L325

Upon recompile-lib:

server 'localhost' disconnected shared memory interface
Server process still found, not dead yet: 20851
'/quit' sent

RESULT = 0
compiling class library...
initPassOne started
    NumPrimitives = 713

No functional problem, just untidy.

crucialfelix commented 7 years ago

Does Server now send didQuit before it actually did quit ? Is this a recent change ?

On Sun, Jul 30, 2017, 17:09 H. James Harkins notifications@github.com wrote:

https://github.com/crucialfelix/crucial-library/blob/master/Instr/InstrSynthDef.sc#L325

Upon recompile-lib:

server 'localhost' disconnected shared memory interface Server process still found, not dead yet: 20851 '/quit' sent

RESULT = 0 compiling class library... initPassOne started NumPrimitives = 713

No functional problem, just untidy.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/crucialfelix/crucial-library/issues/9, or mute the thread https://github.com/notifications/unsubscribe-auth/AANWcrFLRsR03NFEDtZda-eD5vWgas82ks5sTJy5gaJpZM4OnqQR .

jamshark70 commented 7 years ago

Server status watching was totally redone lately.

It appears the sequence is now:

  1. Send /quit - https://github.com/supercollider/supercollider/blob/master/SCClassLibrary/Common/Control/Server.sc#L846
  2. Call quit on the status watcher. https://github.com/supercollider/supercollider/blob/master/SCClassLibrary/Common/Control/Server.sc#L856
  3. That method calls serverRunning_(false). https://github.com/supercollider/supercollider/blob/master/SCClassLibrary/Common/Control/ServerStatus.sc#L30
  4. serverRunning_(false) calls NotificationCenter.notify(server, \didQuit). https://github.com/supercollider/supercollider/blob/master/SCClassLibrary/Common/Control/ServerStatus.sc#L202

Steps 2-4 do not wait for the server process to terminate.

crucialfelix commented 7 years ago

This is confusing: https://github.com/supercollider/supercollider/blob/master/SCClassLibrary/Common/Control/Server.sc#L863

it sends quit, then it class quit on status watcher, THEN it posts /quit sent. The post is out of order.

KonVas commented 6 years ago

Is this related with problems of the lib not compiled, sporadically?

jamshark70 commented 6 years ago

Is this related with problems of the lib not compiled, sporadically?

I don't see how it could be. The post occurs before the library could either succeed or fail to recompile.