| 428 | } |
| 429 | |
| 430 | void aio_stream::enable_error() |
| 431 | { |
| 432 | acl_assert(stream_); |
| 433 | |
| 434 | if ((status_ & STATUS_HOOKED_ERROR)) { |
| 435 | return; |
| 436 | } |
| 437 | status_ |= STATUS_HOOKED_ERROR; |
| 438 | |
| 439 | handle_->increase(); // �����첽������ |
| 440 | |
| 441 | // ע��ص������Խػ�ر�ʱ�Ĺ��� |
| 442 | acl_aio_add_close_hook(stream_, close_callback, this); |
| 443 | |
| 444 | // ע��ص������Խػ�ʱʱ�Ĺ��� |
| 445 | acl_aio_add_timeo_hook(stream_, timeout_callback, this); |
| 446 | } |
| 447 | |
| 448 | int aio_stream::close_callback(ACL_ASTREAM* stream acl_unused, void* ctx) |
| 449 | { |
no test coverage detected