Initial revision
From-SVN: r26263
This commit is contained in:
parent
140fa895c6
commit
ee9dd3721b
370 changed files with 173494 additions and 0 deletions
51
libjava/quick-threads.cc
Normal file
51
libjava/quick-threads.cc
Normal file
|
@ -0,0 +1,51 @@
|
|||
// quick-threads.cc - interface between libjava and QuickThreads.
|
||||
|
||||
/* Copyright (C) 1998, 1999 Cygnus Solutions
|
||||
|
||||
This file is part of libgcj.
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
#include <cni.h>
|
||||
#include <jvm.h>
|
||||
|
||||
#include <java/lang/Thread.h>
|
||||
#include <java/lang/System.h>
|
||||
|
||||
|
||||
// Identifier for our piece of thread-local data. Visible so that it
|
||||
// can be used in quick-threads.h.
|
||||
int _Jv_ThreadKey;
|
||||
|
||||
void
|
||||
_Jv_ThreadStart (java::lang::Thread *thread, _Jv_Thread_t *data,
|
||||
_Jv_ThreadStartFunc *meth)
|
||||
{
|
||||
*data = coop_create ((coop_userf_t *) meth, (void *) thread,
|
||||
thread->isDaemon());
|
||||
coop_setspecific (*data, _Jv_ThreadKey, thread);
|
||||
}
|
||||
|
||||
static void
|
||||
qthrow (void *except)
|
||||
{
|
||||
_Jv_Throw ((java::lang::Throwable *) except);
|
||||
}
|
||||
|
||||
// Function to destroy thread-specific data item. We just don't care.
|
||||
static void
|
||||
destroy_data (void *)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
_Jv_InitThreads (void)
|
||||
{
|
||||
coop_init ();
|
||||
_Jv_ThreadKey = coop_key_create (destroy_data);
|
||||
coop_set_throw_function (qthrow);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue