mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
2662b59306
Docs/manual.texi: Added Innobase documentation configure.in: Incremented version include/my_base.h: Added option for Innobase myisam/mi_check.c: cleanup mysql-test/t/bdb.test: cleanup mysql-test/t/innobase.test: Extended with new tests from bdb.test mysql-test/t/merge.test: Added test of SHOW create mysys/my_init.c: Fix for UNIXWARE 7 scripts/mysql_install_db.sh: Always write how to start mysqld scripts/safe_mysqld.sh: Fixed type sql/ha_innobase.cc: Update to new version sql/ha_innobase.h: Update to new version sql/handler.h: Added 'update_table_comment()' and 'append_create_info()' sql/sql_delete.cc: Fixes for Innobase sql/sql_select.cc: Fixes for Innobase sql/sql_show.cc: Append create information (for MERGE tables) sql/sql_update.cc: Fixes for Innobase
150 lines
3.1 KiB
C
150 lines
3.1 KiB
C
/******************************************************
|
|
The interface to the operating system
|
|
process control primitives
|
|
|
|
(c) 1995 Innobase Oy
|
|
|
|
Created 9/30/1995 Heikki Tuuri
|
|
*******************************************************/
|
|
|
|
#include "os0proc.h"
|
|
#ifdef UNIV_NONINL
|
|
#include "os0proc.ic"
|
|
#endif
|
|
|
|
#ifdef __WIN__
|
|
#include <windows.h>
|
|
#endif
|
|
|
|
#include "ut0mem.h"
|
|
|
|
/********************************************************************
|
|
Allocates non-cacheable memory. */
|
|
|
|
void*
|
|
os_mem_alloc_nocache(
|
|
/*=================*/
|
|
/* out: allocated memory */
|
|
ulint n) /* in: number of bytes */
|
|
{
|
|
#ifdef __WIN__
|
|
void* ptr;
|
|
|
|
ptr = VirtualAlloc(NULL, n, MEM_COMMIT,
|
|
PAGE_READWRITE | PAGE_NOCACHE);
|
|
ut_a(ptr);
|
|
|
|
return(ptr);
|
|
#else
|
|
return(ut_malloc(n));
|
|
#endif
|
|
}
|
|
|
|
#ifdef notdefined
|
|
/********************************************************************
|
|
Creates a new process. */
|
|
|
|
ibool
|
|
os_process_create(
|
|
/*==============*/
|
|
char* name, /* in: name of the executable to start
|
|
or its full path name */
|
|
char* cmd, /* in: command line for the starting
|
|
process, or NULL if no command line
|
|
specified */
|
|
os_process_t* proc, /* out: handle to the process */
|
|
os_process_id_t* id) /* out: process id */
|
|
|
|
{
|
|
BOOL ret;
|
|
PROCESS_INFORMATION pinfo;
|
|
STARTUPINFO sinfo;
|
|
|
|
/* The following assignments are default for the startupinfo
|
|
structure */
|
|
sinfo.cb = sizeof(STARTUPINFO);
|
|
sinfo.lpReserved = NULL;
|
|
sinfo.lpDesktop = NULL;
|
|
sinfo.cbReserved2 = 0;
|
|
sinfo.lpReserved = NULL;
|
|
|
|
ret = CreateProcess(name,
|
|
cmd,
|
|
NULL, /* No security attributes */
|
|
NULL, /* No thread security attrs */
|
|
FALSE, /* Do not inherit handles */
|
|
0, /* No creation flags */
|
|
NULL, /* No environment */
|
|
NULL, /* Same current directory */
|
|
&sinfo,
|
|
&pinfo);
|
|
|
|
*proc = pinfo.hProcess;
|
|
*id = pinfo.dwProcessId;
|
|
|
|
return(ret);
|
|
}
|
|
|
|
/**************************************************************************
|
|
Exits a process. */
|
|
|
|
void
|
|
os_process_exit(
|
|
/*============*/
|
|
ulint code) /* in: exit code */
|
|
{
|
|
ExitProcess((UINT)code);
|
|
}
|
|
|
|
/**************************************************************************
|
|
Gets a process exit code. */
|
|
|
|
ibool
|
|
os_process_get_exit_code(
|
|
/*=====================*/
|
|
/* out: TRUE if succeed, FALSE if fail */
|
|
os_process_t proc, /* in: handle to the process */
|
|
ulint* code) /* out: exit code */
|
|
{
|
|
DWORD ex_code;
|
|
BOOL ret;
|
|
|
|
ret = GetExitCodeProcess(proc, &ex_code);
|
|
|
|
*code = (ulint)ex_code;
|
|
|
|
return(ret);
|
|
}
|
|
#endif /* notdedfined */
|
|
|
|
/********************************************************************
|
|
Sets the priority boost for threads released from waiting within the current
|
|
process. */
|
|
|
|
void
|
|
os_process_set_priority_boost(
|
|
/*==========================*/
|
|
ibool do_boost) /* in: TRUE if priority boost should be done,
|
|
FALSE if not */
|
|
{
|
|
#ifdef __WIN__
|
|
ibool no_boost;
|
|
|
|
if (do_boost) {
|
|
no_boost = FALSE;
|
|
} else {
|
|
no_boost = TRUE;
|
|
}
|
|
|
|
ut_a(TRUE == 1);
|
|
|
|
/* Does not do anything currently!
|
|
SetProcessPriorityBoost(GetCurrentProcess(), no_boost);
|
|
*/
|
|
printf(
|
|
"Warning: process priority boost setting currently not functional!\n"
|
|
);
|
|
#else
|
|
UT_NOT_USED(do_boost);
|
|
#endif
|
|
}
|