summaryrefslogtreecommitdiff
path: root/libco/fiber.c
diff options
context:
space:
mode:
Diffstat (limited to 'libco/fiber.c')
-rw-r--r--libco/fiber.c58
1 files changed, 0 insertions, 58 deletions
diff --git a/libco/fiber.c b/libco/fiber.c
deleted file mode 100644
index 90ba115..0000000
--- a/libco/fiber.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- libco.win (2008-01-28)
- authors: Nach, byuu
- license: public domain
-*/
-
-#define LIBCO_C
-#include <libco.h>
-#define WINVER 0x0400
-#define _WIN32_WINNT 0x0400
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-static thread_local cothread_t co_active_ = 0;
-
-static void __stdcall co_thunk(void *coentry)
-{
- ((void (*)(void))coentry)();
-}
-
-cothread_t co_active(void)
-{
- if(!co_active_)
- {
- ConvertThreadToFiber(0);
- co_active_ = GetCurrentFiber();
- }
- return co_active_;
-}
-
-cothread_t co_create(unsigned int heapsize, void (*coentry)(void))
-{
- if(!co_active_)
- {
- ConvertThreadToFiber(0);
- co_active_ = GetCurrentFiber();
- }
- return (cothread_t)CreateFiber(heapsize, co_thunk, (void*)coentry);
-}
-
-void co_delete(cothread_t cothread)
-{
- DeleteFiber(cothread);
-}
-
-void co_switch(cothread_t cothread)
-{
- co_active_ = cothread;
- SwitchToFiber(cothread);
-}
-
-#ifdef __cplusplus
-}
-#endif