diff options
author | Christian Ulrich <christian@ulrich.earth> | 2020-07-10 18:08:11 +0200 |
---|---|---|
committer | Christian Ulrich <christian@ulrich.earth> | 2020-07-10 18:08:11 +0200 |
commit | 17b7bf0168c20e3fe39f8bd6be320a468e638961 (patch) | |
tree | 5ad0b84bf6369214d4fdc592112322cc12da2baf | |
parent | 3a1416d57727ccc277baad1bb9ec83f690476aaf (diff) | |
download | gnunet-nim-17b7bf0168c20e3fe39f8bd6be320a468e638961.tar.gz gnunet-nim-17b7bf0168c20e3fe39f8bd6be320a468e638961.zip |
GNUNET_SCHEDULER_add does not work anymore before first call to GNUNET_SCHEDULER_do_work
-rw-r--r-- | src/gnunet_nim/cadet.nim | 19 |
1 files changed, 4 insertions, 15 deletions
diff --git a/src/gnunet_nim/cadet.nim b/src/gnunet_nim/cadet.nim index b079f52..64991d7 100644 --- a/src/gnunet_nim/cadet.nim +++ b/src/gnunet_nim/cadet.nim | |||
@@ -140,18 +140,7 @@ proc disconnect(cadetHandle: ptr CadetHandle) = | |||
140 | proc shutdownCb(cls: pointer) {.cdecl.} = | 140 | proc shutdownCb(cls: pointer) {.cdecl.} = |
141 | disconnect(cast[ptr CadetHandle](cls)) | 141 | disconnect(cast[ptr CadetHandle](cls)) |
142 | 142 | ||
143 | proc cadetConnectCb(cls: pointer) {.cdecl.} = | 143 | proc initCadet*(app: ref GnunetApplication): ref CadetHandle = |
144 | let app = cast[ptr GnunetApplication](cls) | 144 | new(result, proc(handle: ref CadetHandle) = disconnect(addr handle[])) |
145 | var future: FutureBase | 145 | result.handle = GNUNET_CADET_connect(app.configHandle) |
146 | if app.connectFutures.take("cadet", future): | 146 | result.shutdownTask = GNUNET_SCHEDULER_add_shutdown(shutdownCb, addr result[]) |
147 | var cadetHandle: ref CadetHandle | ||
148 | new(cadetHandle, proc(handle: ref CadetHandle) = disconnect(addr handle[])) | ||
149 | cadetHandle.handle = GNUNET_CADET_connect(app.configHandle) | ||
150 | cadetHandle.shutdownTask = GNUNET_SCHEDULER_add_shutdown(shutdownCb, | ||
151 | addr cadetHandle[]) | ||
152 | Future[ref CadetHandle](future).complete(cadetHandle) | ||
153 | |||
154 | proc initCadet*(app: ref GnunetApplication): Future[ref CadetHandle] = | ||
155 | result = newFuture[ref CadetHandle]("connectCadet") | ||
156 | app.connectFutures.add("cadet", result) | ||
157 | discard GNUNET_SCHEDULER_add_now(cadetConnectCb, addr app[]) | ||