Re: [Vm-dev] Delay machinery (was Re: [Pharo-dev] Suspending a Process)
So, we are going to change it in Pharo.
What about Squeak ?
2014-07-28 21:39 GMT+02:00 Eliot Miranda <[hidden email]>:
Hi Nicolai,
On Jul 27, 2014, at 10:59 PM, Nicolai Hess <[hidden email]> wrote:
Then you're not reading it properly. It clearly shows you have a deadlock:
Process 0xb9148c20 priority 40 0xff7907b8 M [] in Semaphore>critical: 0xb82f8ef4: a(n) Semaphore 0xff7907d8 M BlockClosure>ensure: 0xb91502e0: a(n) BlockClosure 0xff7907f8 M Semaphore>critical: 0xb82f8ef4: a(n) Semaphore 0xff790814 M Delay>schedule 0xb91501e4: a(n) Delay 0xff79082c M Delay>wait 0xb91501e4: a(n) Delay 0xff790850 I [] in BackgroundWorkDisplayMorph>initialize 0xb91488b0: a(n) BackgroundWorkDisplayMorph 0xff790870 I [] in BlockClosure>newProcess 0xb9148b40: a(n) BlockClosure
Process 0xb7902630 priority 40 0xff764784 M [] in Semaphore>critical: 0xb82f8ef4: a(n) Semaphore 0xff7647a4 M BlockClosure>ensure: 0xb916b7a4: a(n) BlockClosure 0xff7647c4 M Semaphore>critical: 0xb82f8ef4: a(n) Semaphore 0xff7647e0 M Delay>schedule 0xb916b6a8: a(n) Delay 0xff7647f8 M Delay>wait 0xb916b6a8: a(n) Delay 0xff764818 M WorldState>interCyclePause: 0xb75e8fd8: a(n) WorldState 0xff764834 M WorldState>doOneCycleFor: 0xb75e8fd8: a(n) WorldState 0xff764850 M WorldMorph>doOneCycle 0xb75e8fa4: a(n) WorldMorph 0xff764870 I [] in MorphicUIManager()>? 0xb770ac38: a(n) MorphicUIManager 0xb78cb554 s [] in BlockClosure()>?
Ah, Ok.
So, it is not my "misuse" of delays but a bug in Delay>>#schedule, like ben already guessed?
Two processes in the same critical section should not happen, right?
Right, and fortunately Ben already provided a solution.