-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

> I encounter strange problems with semaphore library from l4env. I use
> a vanillia revision 230 on an intel PIII architecture. After some
> debugging and tracing, I get the following scenarion :
> 
> 1. thread 03 of my process calls a semaphore down timed which then
> calls BLOCKTIMED IPC to semaphore thread 02. So semaphore structure is:
>  counter = -1
>  pending = 0
>  queue = 03
> 
> 2. thread 08 calls semaphore_up inline assembler code. Before IPC
> call, the semaphore structure is as follow :
>  counter = 0
>  pending = 0
>  queue = 03
> 
> 3. Thread 03 gains the CPU after timeout and calls IPC RELEASETIMED :
>  counter = 1
>  pending = 0
>  queue = empty
> 
> 4. Thread 02 doesn't find thread into queue, so that pending is set to 1.
>  counter = 1
>  pending = 1
>  queue = empty
> 
> 5. Thread 03 calls semaphore_down. No IPC is called.
>  counter = 0
>  pending = 1
>  queue = empty
> 
> 6. Thread 03 calls semaphore_down again and IPC BLOCK is called. IPC
> awakes imediately 03 with a counter value of -1 and nobody into queue.
>  counter = -1
>  pending = 0
>  queue = empty
> 
> It seems to me that this state is not normal. Do you agree ? Is this
> scenario possible as I observe clearly state 4 5 and 6 ? What pending
> is for ?

Are you just having a problem understanding the observed values or is there
a real problem that you are running into? If the latter, could you provide
a small example program so that we can reproduce it here?

Regards,
Bjoern
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFHHbCcP5ijxgQLUNkRAtUAAJ93MKuwxsdhPn5vzWzhRG2ahW+DEgCgiZoo
CAy9LWdBVZXb/JJZ5sW+Y1M=
=9jpE
-----END PGP SIGNATURE-----

_______________________________________________
l4-hackers mailing list
l4-hackers@os.inf.tu-dresden.de
http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers

Reply via email to