diff options
author | Ignacio Etcheverry <neikeq@users.noreply.github.com> | 2017-10-16 03:58:51 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-16 03:58:51 +0200 |
commit | 1a9efb417a20d2753a942cc5d4d2d46ce8cde7fb (patch) | |
tree | 04a8a8134066f74cf94e312ea7d03a47b3be45a1 /modules/mono/signal_awaiter_utils.h | |
parent | 0d0cb01f3385d512de0f91b0d73706a3380ec063 (diff) | |
parent | 63369ec3066195a7d282d2345beecb50bfd7de3d (diff) |
Merge pull request #12135 from neikeq/g
Re-write SignalAwaiter implementation
Diffstat (limited to 'modules/mono/signal_awaiter_utils.h')
-rw-r--r-- | modules/mono/signal_awaiter_utils.h | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/modules/mono/signal_awaiter_utils.h b/modules/mono/signal_awaiter_utils.h index 422ed4754f..0d615b5826 100644 --- a/modules/mono/signal_awaiter_utils.h +++ b/modules/mono/signal_awaiter_utils.h @@ -40,13 +40,30 @@ Error connect_signal_awaiter(Object *p_source, const String &p_signal, Object *p class SignalAwaiterHandle : public MonoGCHandle { + GDCLASS(SignalAwaiterHandle, MonoGCHandle) + bool completed; +#ifdef DEBUG_ENABLED + ObjectID conn_target_id; +#endif + + Variant _signal_callback(const Variant **p_args, int p_argcount, Variant::CallError &r_error); + +protected: + static void _bind_methods(); + public: _FORCE_INLINE_ bool is_completed() { return completed; } _FORCE_INLINE_ void set_completed(bool p_completed) { completed = p_completed; } - SignalAwaiterHandle(uint32_t p_handle); +#ifdef DEBUG_ENABLED + _FORCE_INLINE_ void set_connection_target(Object *p_target) { + conn_target_id = p_target->get_instance_id(); + } +#endif + + SignalAwaiterHandle(uint32_t p_managed_handle); ~SignalAwaiterHandle(); }; |