Re: [9fans] odd rwakeup qunlock behaviour in 9vx

2023-11-09 Thread Lucio De Re
On 11/10/23, ibrahim via 9fans <9fans@9fans.net> wrote: > [ ... ] > > The reasoning behind this thread is only informing others about possible > problems I encountered. I don't need a solution I already have a working > workaround using simple locks. My code would be of no benefit for other >

Re: [9fans] odd rwakeup qunlock behaviour in 9vx

2023-11-09 Thread ibrahim via 9fans
Some time ago I wrote an email to p9f for registration of a user account in the contrib folder but that mail never got delivered. Otherwise I would regularly place a binare image for x86 for testing the effect of changes I made to the kernel and userland regarding performance. Regarding code

Re: [9fans] odd rwakeup qunlock behaviour in 9vx

2023-11-08 Thread Lucio De Re
On 11/9/23, ibrahim via 9fans <9fans@9fans.net> wrote: > > If there is interest for reproducing the exact circumstances I can write a > small example app which involves different processes accessing the same > shared memory segments which are inherited by the rfork methods. > I assume that such an

Re: [9fans] odd rwakeup qunlock behaviour in 9vx

2023-11-08 Thread ibrahim via 9fans
Thanks for your reply. This behavior only appeared while using shared memory in form of segments. I already solved this problem by exchanging qlock, qunlock by lock (canlock). I also didn't have any problems while using other forms of memory constellations but while using shared memory segments

Re: [9fans] odd rwakeup qunlock behaviour in 9vx

2023-11-08 Thread ori
A complete snippet to reproduce this may be useful. That said, I have code that uses qlock and rendez heavily with no sleeps, and have not had any issues on 9front. Quoth ibrahim via 9fans <9fans@9fans.net>: > I have a function chan_send in which : > chan_send (...) { > qlock() > rwakeup(...) >

[9fans] odd rwakeup qunlock behaviour in 9vx

2023-11-04 Thread ibrahim via 9fans
I have a function chan_send in which : chan_send (...) { qlock() rwakeup(...) qunlock() } If two such chan_send functions are called without a "task-switch" 9vx crashes. A work around for this problem is to place a sleep(0) after qunlock to enforce a task-switch chan_send(...) { qlock()