midp_thread.h

来自「This is a resource based on j2me embedde」· C头文件 代码 · 共 116 行

H
116
字号
/* *   * * Copyright  1990-2007 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER *  * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License version * 2 only, as published by the Free Software Foundation. *  * 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 version 2 for more details (a copy is * included at /legal/license.txt). *  * You should have received a copy of the GNU General Public License * version 2 along with this work; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA *  * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 or visit www.sun.com if you need additional * information or have any questions. */#ifndef _MIDP_THREAD_H#define _MIDP_THREAD_H/** * @file * @ingroup core_vmservices * * @brief Internal utility function to wake up a Java thread when  * status of the resource it is waiting for has changed. */#include <jvmspi.h>#include <midpServices.h>#ifdef __cplusplusextern "C" {#endif/** * A type for a request to schedule VM time slice. */typedef void (*VmThreadTimesliceProc)(void);/** * Sets the routine for implementation-specific request for a VM time slice. * This routine will be called every time after a VM thread is unblocked. * If NULL is passed as an argument, no requests will be done. * * @param p routine to request for a VM time slice */void midp_thread_set_timeslice_proc(VmThreadTimesliceProc p);/** * Blocks the current Java thread. The MidpReentryData block for  * the current Java thread is set to the passed values. *  * @param waitingFor set into MidpReentryData.waitingFor * @param descriptor set into MidpReentryData.descriptor * @param pResult set into MidpReentryData.pResult */void midp_thread_wait(        midpSignalType waitingFor, int descriptor, void* pResult);/** * Finds and unblocks all Java threads based on what the thread is waiting  * for and which descriptor it is waiting on. This queries the VM for the list  * of blocked threads. *  * @param waitingFor used to match MidpReentryData.waitingFor * @param descriptor used to match MidpReentryData.descriptor * @param status the value stored into MidpReentryData.status for every  *               thread that is unblocked */void midp_thread_signal(midpSignalType waitingFor, int descriptor, int status);/** * Finds and unblocks all Java threads based on what the thread is waiting  * for and which descriptor it is waiting on. The list of threads to be  * searched is passed as a pair of parameters. *  * @param blocked_threads list of blocked threads * @param blocked_threads_count number of blocked threads in the list * @param waitingFor used to match MidpReentryData.waitingFor * @param descriptor used to match MidpReentryData.descriptor * @param status the value stored into MidpReentryData.status for every  *               thread that is unblocked */void midp_thread_signal_list(        JVMSPI_BlockedThreadInfo *blocked_threads,        int blocked_threads_count, midpSignalType waitingFor,        int descriptor, int status);/** * A midp internal function that unblocks the given Java thread. This should  * be called in preference to calling SNI_UnblockThread directly, since  * depending upon how the VM is scheduled (master mode or slave mode)  * additional work may need to be done. In particular, in slave mode, this  * function will need to arrange for a VM time slice to occur quickly. * * @param thr the Java thread to unblock */void midp_thread_unblock(JVMSPI_ThreadID thr);#ifdef __cplusplus}#endif#endif /* _MIDP_THREAD_H */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?