Merge branch 'silc.1.1.branch' of silc repo
[runtime.git] / lib / silcutil / unix / silcunixschedule.c
index 80e8fbf264e9a471a1732ef98b1c3c7546f8f65e..1543d16ef4b646e6b20708a49ac7900b25143da6 100644 (file)
@@ -16,9 +16,8 @@
   GNU General Public License for more details.
 
 */
-/* $Id$ */
 
-#include "silc.h"
+#include "silcruntime.h"
 
 #if defined(HAVE_EPOLL_WAIT)
 #include <sys/epoll.h>
@@ -355,7 +354,7 @@ void *silc_schedule_internal_init(SilcSchedule schedule,
   SilcUnixScheduler internal;
   int i;
 
-  internal = silc_calloc(1, sizeof(*internal));
+  internal = silc_scalloc(schedule->stack, 1, sizeof(*internal));
   if (!internal)
     return NULL;
 
@@ -395,7 +394,6 @@ void *silc_schedule_internal_init(SilcSchedule schedule,
 #ifdef SILC_THREADS
   if (pipe(internal->wakeup_pipe)) {
     SILC_LOG_ERROR(("pipe() fails: %s", strerror(errno)));
-    silc_free(internal);
     return NULL;
   }
 
@@ -439,8 +437,6 @@ void silc_schedule_internal_uninit(SilcSchedule schedule, void *context)
 #elif defined(HAVE_POLL) && defined(HAVE_SETRLIMIT) && defined(RLIMIT_NOFILE)
   silc_free(internal->fds);
 #endif /* HAVE_POLL && HAVE_SETRLIMIT && RLIMIT_NOFILE */
-
-  silc_free(internal);
 }
 
 /* Wakes up the scheduler */