| 22 | } |
| 23 | |
| 24 | void Process(void*) override { |
| 25 | THolder<TThreadTask> This(this); |
| 26 | |
| 27 | if (Id_ == 0) { |
| 28 | usleep(100); |
| 29 | bool cond = Data_.Counter.load() == 0; |
| 30 | if (!cond) { |
| 31 | Data_.failed = true; |
| 32 | } |
| 33 | Data_.event.Signal(); |
| 34 | } else { |
| 35 | while (!Data_.event.WaitT(TDuration::Seconds(100))) { |
| 36 | } |
| 37 | Data_.Counter += Id_; |
| 38 | } |
| 39 | } |
| 40 | |
| 41 | private: |
| 42 | TSharedData& Data_; |