/*
* Copyright (C) 2011 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
struct Thread;
/*
* Raises the scheduling priority of the current thread. Returns the
* original priority if successful, or INT_MAX on failure.
* Use os_lowerThreadPriority to undo.
*
* TODO: does the GC really need this?
*/
int os_raiseThreadPriority();
/*
* Sets the current thread scheduling priority. Used to undo the effects
* of an earlier call to os_raiseThreadPriority.
*
* TODO: does the GC really need this?
*/
void os_lowerThreadPriority(int oldThreadPriority);
/*
* Changes the priority of a system thread to match that of the Thread object.
*
* We map a priority value from 1-10 to Linux "nice" values, where lower
* numbers indicate higher priority.
*/
void os_changeThreadPriority(Thread* thread, int newPriority);
/*
* Returns the thread priority for the current thread by querying the system.
* This is useful when attaching a thread through JNI.
*
* Returns a value from 1 to 10 (compatible with java.lang.Thread values).
*/
int os_getThreadPriorityFromSystem();