On Thu, 19 Feb 2009, Maurilio Longo wrote:

Hi Maurilio,
> it starts misbehaving with three threads, look at this:
>  1  200 blocked fd504d64
>  2  200 blocked fd5080c4
>  3  200 running fd507008
>  4  200 ready   fd507008
> threads 3 and 4 are running and run to completion, thread 2 is blocked since
> it started, thread 1 is blocked waiting for the other threads to start. ( 200
> is priority normal )
> This is with 5 threads
>  1  200 blocked
>  2  200 blocked
>  3  200 blocked
>  4  200 blocked
>  5  200 running
>  6  200 ready
> They're all blocked but the last two.
> This is with 10 threads
>   1  200 blocked
>   2  200 running
>   3  200 blocked
>   4  200 blocked
>   5  200 ready
>   6  200 blocked
>   7  200 blocked
>   8  200 blocked
>   9  200 blocked
>  10  200 ready
>  11  200 ready
> Now four are running, the others are blocked since they were created ?!

This can be result of my typo in _hb_thread_cond_signal()/
_hb_thread_cond_broadcast() used in current OS2 builds.
By mistake it was LIFO instead of FIFO.

I'll commit fix in a while but probably it's not the only one problem.

best regards,
Przemek
_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to