diff options
Diffstat (limited to 'src/backend')
-rw-r--r-- | src/backend/taler-merchant-webhook.c | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/src/backend/taler-merchant-webhook.c b/src/backend/taler-merchant-webhook.c index 99ab76d5..60ad3240 100644 --- a/src/backend/taler-merchant-webhook.c +++ b/src/backend/taler-merchant-webhook.c @@ -467,20 +467,9 @@ select_work (void *cls) return; case GNUNET_DB_STATUS_SUCCESS_NO_RESULTS: /* wait 5 min */ + /* Note: this should not even be necessary if all webhooks + use the events properly... */ rel = GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MINUTES, 5); - if (NULL == eh) - { - struct GNUNET_DB_EventHeaderP es = { - .size = htons (sizeof (es)), - .type = htons (TALER_DBEVENT_MERCHANT_WEBHOOK_PENDING) - }; - - eh = db_plugin->event_listen (db_plugin->cls, - &es, - GNUNET_TIME_UNIT_FOREVER_REL, - &db_notify, - NULL); - } task = GNUNET_SCHEDULER_add_delayed (rel, &select_work, NULL); @@ -493,7 +482,7 @@ select_work (void *cls) } -/* +/** * First task. * * @param cls closure, NULL @@ -538,6 +527,18 @@ run (void *cls, GNUNET_SCHEDULER_shutdown (); return; } + { + struct GNUNET_DB_EventHeaderP es = { + .size = htons (sizeof (es)), + .type = htons (TALER_DBEVENT_MERCHANT_WEBHOOK_PENDING) + }; + + eh = db_plugin->event_listen (db_plugin->cls, + &es, + GNUNET_TIME_UNIT_FOREVER_REL, + &db_notify, + NULL); + } GNUNET_assert (NULL == task); task = GNUNET_SCHEDULER_add_now (&select_work, NULL); |