1. --!parent
  2. --!encoding=utf-8
  3.  
  4. --****************************************************************************
  5. -- @file      Callback Detach Class
  6. -- @author    Valentin Schmidt
  7. -- @version   0.1
  8. --****************************************************************************
  9.  
  10. global $
  11.  
  12. property _method
  13. property _receiver
  14.  
  15. ----------------------------------------
  16. -- @constructor
  17. ----------------------------------------
  18. on new (me, method, receiver)
  19.   me._method = method
  20.   me._receiver = receiver
  21.   return me
  22. end
  23.  
  24. ----------------------------------------
  25. -- use 1 ms single-shot timeout to create a new thread
  26. -- so scripting errors in callbacks don't fail silently
  27. ----------------------------------------
  28. on _detach (me, res)
  29.   $.detacher.detach(#_call, me, res)
  30. end
  31.  
  32. ----------------------------------------
  33. -- we are detached from original thread, now handle signal
  34. ----------------------------------------
  35. on _call (me, res)
  36.   call(me._method, me._receiver, res)
  37. end
  38.  
[raw code]