src/thread/SDL_systhread.h
author Sam Lantinga <slouken@libsdl.org>
Fri, 25 Mar 2011 12:44:06 -0700
changeset 5509 5b1b4d820d10
parent 5506 82a09d5d0f07
child 5535 96594ac5fd1a
permissions -rw-r--r--
The API sets the priority for the current thread, not an arbitrary thread.

Implemented thread priority as the 'nice' value on Linux. High priority threads require root permissions (you shouldn't give your game root permissions though!)
slouken@0
     1
/*
slouken@0
     2
    SDL - Simple DirectMedia Layer
slouken@5262
     3
    Copyright (C) 1997-2011 Sam Lantinga
slouken@0
     4
slouken@0
     5
    This library is free software; you can redistribute it and/or
slouken@1312
     6
    modify it under the terms of the GNU Lesser General Public
slouken@0
     7
    License as published by the Free Software Foundation; either
slouken@1312
     8
    version 2.1 of the License, or (at your option) any later version.
slouken@0
     9
slouken@0
    10
    This library is distributed in the hope that it will be useful,
slouken@0
    11
    but WITHOUT ANY WARRANTY; without even the implied warranty of
slouken@0
    12
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
slouken@1312
    13
    Lesser General Public License for more details.
slouken@0
    14
slouken@1312
    15
    You should have received a copy of the GNU Lesser General Public
slouken@1312
    16
    License along with this library; if not, write to the Free Software
slouken@1312
    17
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
slouken@0
    18
slouken@0
    19
    Sam Lantinga
slouken@252
    20
    slouken@libsdl.org
slouken@0
    21
*/
slouken@1402
    22
#include "SDL_config.h"
slouken@0
    23
slouken@0
    24
/* These are functions that need to be implemented by a port of SDL */
slouken@0
    25
slouken@1361
    26
#ifndef _SDL_systhread_h
slouken@1361
    27
#define _SDL_systhread_h
slouken@1361
    28
slouken@1361
    29
#include "SDL_thread.h"
slouken@0
    30
slouken@0
    31
/* This function creates a thread, passing args to SDL_RunThread(),
slouken@0
    32
   saves a system-dependent thread id in thread->id, and returns 0
slouken@0
    33
   on success.
slouken@0
    34
*/
slouken@1471
    35
#ifdef SDL_PASSED_BEGINTHREAD_ENDTHREAD
slouken@1895
    36
extern int SDL_SYS_CreateThread(SDL_Thread * thread, void *args,
slouken@1895
    37
                                pfnSDL_CurrentBeginThread pfnBeginThread,
slouken@1895
    38
                                pfnSDL_CurrentEndThread pfnEndThread);
icculus@1190
    39
#else
slouken@1895
    40
extern int SDL_SYS_CreateThread(SDL_Thread * thread, void *args);
icculus@1190
    41
#endif
slouken@0
    42
slouken@0
    43
/* This function does any necessary setup in the child thread */
slouken@0
    44
extern void SDL_SYS_SetupThread(void);
slouken@0
    45
slouken@5509
    46
/* This function sets the current thread priority */
slouken@5509
    47
extern int SDL_SYS_SetThreadPriority(SDL_ThreadPriority priority);
slouken@5506
    48
slouken@0
    49
/* This function waits for the thread to finish and frees any data
slouken@0
    50
   allocated by SDL_SYS_CreateThread()
slouken@0
    51
 */
slouken@1895
    52
extern void SDL_SYS_WaitThread(SDL_Thread * thread);
slouken@0
    53
slouken@1361
    54
#endif /* _SDL_systhread_h */
slouken@3579
    55
slouken@1895
    56
/* vi: set ts=4 sw=4 expandtab: */