task_wakeup(SPOE_APPCTX(appctx)->task, TASK_WOKEN_INIT);
LIST_ADDQ(&conf->agent->applets, &SPOE_APPCTX(appctx)->list);
conf->agent->applets_act++;
+
+ task_wakeup(task, TASK_WOKEN_INIT);
return appctx;
/* Error unrolling */
jobs++;
totalconn++;
+ task_wakeup(task, TASK_WOKEN_INIT);
/* Return yield waiting for connection. */
return 1;
totalconn++;
peer->appctx = appctx;
+ task_wakeup(t, TASK_WOKEN_INIT);
return appctx;
/* Error unrolling */
strm->target = sess->listener->default_target;
strm->req.analysers |= sess->listener->analysers;
+ task_wakeup(t, TASK_WOKEN_INIT);
return 1;
out_free_task:
strm->req.analysers |= sess->listener->analysers;
conn->flags &= ~CO_FL_INIT_DATA;
+ task_wakeup(task, TASK_WOKEN_INIT);
return 0;
fail:
/* it is important not to call the wakeup function directly but to
* pass through task_wakeup(), because this one knows how to apply
- * priorities to tasks.
+ * priorities to tasks. Using multi thread we must be sure that
+ * stream is fully initialized before calling task_wakeup. So
+ * the caller must handle the task_wakeup
*/
- task_wakeup(t, TASK_WOKEN_INIT);
return s;
/* Error unrolling */