summaryrefslogtreecommitdiff
path: root/modules/mono/signal_awaiter_utils.h
diff options
context:
space:
mode:
authorIgnacio Etcheverry <neikeq@users.noreply.github.com>2017-10-16 03:58:51 +0200
committerGitHub <noreply@github.com>2017-10-16 03:58:51 +0200
commit1a9efb417a20d2753a942cc5d4d2d46ce8cde7fb (patch)
tree04a8a8134066f74cf94e312ea7d03a47b3be45a1 /modules/mono/signal_awaiter_utils.h
parent0d0cb01f3385d512de0f91b0d73706a3380ec063 (diff)
parent63369ec3066195a7d282d2345beecb50bfd7de3d (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.h19
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();
};