Re: Порядок захвата mutex'ов.
- From
- Anton Petrusevich ()
- To
- All ()
- Date
- 2003-05-29T19:44:10Z
- Area
- RU.UNIX.PROG
From: Anton Petrusevich <casus@att-ltd.biz>
mitrohin a.s. wrote:
> вот и вы на ступили на те же грабли что и я ;)))
неправда, я наступил на соседние :)
> нельзя пользоваться cond без вспомогательной переменной
Можно. У меня состояние треда само по себе переменная.
>
> thread 1 thread 2
> -------------------------------------------------------------------
> cond_broadcast() cond_wait()
>
> broadcast пришел до того как первый поток сел на cond_wait()
> и естественно этот broadcast не получил ;))
Ну неправда. Я же описал ситуацию. Мы сели в вэйт, когда просто некому было
больше взять задание -- все заняты. На самом деле у меня был не вэйт, а
таймед вэйт, с лимитом в 10 секунд. За эти 10 секунд довольно много народа
перешло в состояние ожидания, я точно знаю :) но никто не разбудил
раздатчика. Когда раздатчик просыплся по таймауту было уже с десяток
свободных тредов.
> и для thread2() фиолетово где cond_broadcast(), внутри блока lock-unlock
> или нет...
Согласен, фиолетово. Главное, чтобы был лок/анлок вообще. И переменная как
таковая не нужна, по крайней мере в моём случае.
--
Anton Petrusevich
--- ifmail v.2.15
* Origin: ATT Ltd (2:5004/1@fidonet)