Hi,
I have a thread pool server.
I have a printf at the beginning of my io_msg() function to see that
some client wants something.
Client 1 sends a message to the server to get and lock a value.
Client 1 waits a while.
Client 1 sends a message to the server to set and unlock the value.
It’s ok.
Client 2 can do the same. Wonderfull!
Now:
Client 1 sends a message to the server to get and lock a value. Ok
Client 1 waits a while.
Client 2 sends a message to the server to get the same value. Ok
Client 2 is blocked on a condvar (0804E4C0) waiting that Client 1
release the value and broadcast the condvar. Ok
Client 1 sends a message to the server to set and unlock the value.
Unfortunately, my io_msg doesn’t print anything, meanning that I didn’t
enter in this function I didn’t either enter in my server_ocb_calloc()
but, psin indicates that I have a new thread blocked on a different
condvar (B034BAE8).
Why? I don’t know!
Subsequent requests from other clients will cause new thread creations,
all blocked on the same condvar (B034BAE8) allways the same address,
even if I kill and restart the server!
Any idea?
Thanks,
Alain.