IEventCallback implementation
| 2957 | |
| 2958 | // IEventCallback implementation |
| 2959 | virtual void eventCallbackFunction(unsigned int length, const UCHAR* list) |
| 2960 | { |
| 2961 | RefPtr<YEvents> tmp; |
| 2962 | try |
| 2963 | { |
| 2964 | MutexLockGuard g(mtx, FB_FUNCTION); |
| 2965 | if (events) |
| 2966 | { |
| 2967 | ast(arg, length, list); |
| 2968 | |
| 2969 | tmp = events; |
| 2970 | events = NULL; |
| 2971 | } |
| 2972 | } |
| 2973 | catch (const Exception&) |
| 2974 | { } |
| 2975 | |
| 2976 | if (tmp) |
| 2977 | { |
| 2978 | LocalStatus status; |
| 2979 | CheckStatusWrapper statusWrapper(&status); |
| 2980 | tmp->cancel(&statusWrapper); |
| 2981 | } |
| 2982 | } |
| 2983 | |
| 2984 | Mutex mtx; |
| 2985 | FPTR_EVENT_CALLBACK ast; |