+++ /dev/null
-/*
-
- silcepocthread.cpp
-
- Author: Pekka Riikonen <priikone@silcnet.org>
-
- Copyright (C) 2002 Pekka Riikonen
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; version 2 of the License.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
-*/
-/* $Id$ */
-
-#include "silcincludes.h"
-
-#ifdef SILC_THREADS
-
-/* Thread structure for EPOC */
-typedef struct {
- RThread *thread;
- SilcThreadStart start_func;
- void *context;
- bool waitable;
-} *SilcEpocThread;
-
-/* The actual thread function */
-
-TInt silc_thread_epoc_start(TAny *context)
-{
- SilcEpocThread thread = (SilcEpocThread)context;
-
- thread->start_func(thread->context);
- silc_thread_exit(NULL);
-
- return 0;
-}
-
-SilcThread silc_thread_create(SilcThreadStart start_func, void *context,
- bool waitable)
-{
-#ifdef SILC_THREADS
- SilcEpocThread thread;
- TInt ret;
-
- SILC_LOG_DEBUG(("Creating new thread"));
-
- thread = silc_calloc(1, sizeof(*thread));
- thread->start_func = start_func;
- thread->context = context;
- thread->waitable = waitable;
-
- /* Create the thread */
- /* XXX Unique name should be given for the thread */
- thread->thread = new RThread();
- ret = thread->thread->Create(NULL, silc_thread_epoc_start, 0, 0, 0,
- (TAny *)thread, EOwnerProcess);
- if (ret != KErrNone) {
- SILC_LOG_ERROR(("Could not create new thread"));
- delete thread->thread;
- silc_free(thread);
- return NULL;
- }
-
- return (SilcThread)thread;
-#else
- /* Call thread callback immediately */
- (*start_func)(context);
- return NULL;
-#endif
-}
-
-void silc_thread_exit(void *exit_value)
-{
-#ifdef SILC_THREADS
- /* XXX */
-#endif
-}
-
-SilcThread silc_thread_self(void)
-{
-#ifdef SILC_THREADS
- /* XXX */
- return NULL;
-#else
- return NULL;
-#endif
-}
-
-bool silc_thread_wait(SilcThread thread, void **exit_value)
-{
-#ifdef SILC_THREADS
- /* XXX */
- return TRUE;
-#else
- return FALSE;
-#endif
-}