| 438 | } |
| 439 | |
| 440 | TaskControl::~TaskControl() { |
| 441 | // NOTE: g_task_control is not destructed now because the situation |
| 442 | // is extremely racy. |
| 443 | delete _pending_time.exchange(NULL, butil::memory_order_relaxed); |
| 444 | _worker_usage_second.hide(); |
| 445 | _switch_per_second.hide(); |
| 446 | _signal_per_second.hide(); |
| 447 | _status.hide(); |
| 448 | |
| 449 | stop_and_join(); |
| 450 | } |
| 451 | |
| 452 | int TaskControl::_add_group(TaskGroup* g, bthread_tag_t tag) { |
| 453 | if (__builtin_expect(NULL == g, 0)) { |