| 3675 | } |
| 3676 | |
| 3677 | int |
| 3678 | TSContCall(TSCont contp, TSEvent event, void *edata) |
| 3679 | { |
| 3680 | Continuation *c = reinterpret_cast<Continuation *>(contp); |
| 3681 | WEAK_MUTEX_TRY_LOCK(lock, c->mutex, this_ethread()); |
| 3682 | if (!lock.is_locked()) { |
| 3683 | // If we cannot get the lock, the caller needs to restructure to handle rescheduling |
| 3684 | ink_release_assert(0); |
| 3685 | } |
| 3686 | return c->handleEvent(static_cast<int>(event), edata); |
| 3687 | } |
| 3688 | |
| 3689 | TSMutex |
| 3690 | TSContMutexGet(TSCont contp) |