mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-13 16:39:16 +02:00
* more compatibility changes (semaphores)
This commit is contained in:
parent
0ac9fd17a4
commit
b13f5445c7
@ -190,6 +190,9 @@ function DosExitCritSec:longint; cdecl;
|
|||||||
|
|
||||||
const deThread=0; {Terminate thread only.}
|
const deThread=0; {Terminate thread only.}
|
||||||
deProcess=1; {Terminate the whole process.}
|
deProcess=1; {Terminate the whole process.}
|
||||||
|
(* The following for compatibility only *)
|
||||||
|
Exit_Thread = deThread;
|
||||||
|
Exit_Process = deProcess;
|
||||||
|
|
||||||
{Terminate the thread or the program. Never returns, so it's defined as
|
{Terminate the thread or the program. Never returns, so it's defined as
|
||||||
procedure.}
|
procedure.}
|
||||||
@ -1401,6 +1404,13 @@ const smShared = $0001; {Semaphore is shared.}
|
|||||||
is cleared.}
|
is cleared.}
|
||||||
smMWWaitAll = $0004; {MuxWait only: Wait until all semaphores
|
smMWWaitAll = $0004; {MuxWait only: Wait until all semaphores
|
||||||
are cleared.}
|
are cleared.}
|
||||||
|
Sem_Indefinite_Wait = -1; {DosRequestMutExSem blocks the calling
|
||||||
|
thread indefinitely.}
|
||||||
|
Sem_Immediate_Return = 0; {DosRequestMutExSem returns immediately
|
||||||
|
without blocking the calling thread.}
|
||||||
|
(* The following just for compatibility. *)
|
||||||
|
dcMW_Wait_Any = smMWWaitAny;
|
||||||
|
dcMW_Wait_All = smMWWaitAll;
|
||||||
|
|
||||||
type PSemRecord=^TSemRecord;
|
type PSemRecord=^TSemRecord;
|
||||||
TSemRecord=record
|
TSemRecord=record
|
||||||
@ -1413,12 +1423,16 @@ type PSemRecord=^TSemRecord;
|
|||||||
|
|
||||||
{Create an event semaphore.
|
{Create an event semaphore.
|
||||||
Name = Optional: Name of semaphore to create. Must start with '\SEM32\.
|
Name = Optional: Name of semaphore to create. Must start with '\SEM32\.
|
||||||
Use nil for PChar or '' for string variant for noname. A
|
Use nil for PChar or '' for string variant for noname. An
|
||||||
unnamed semaphore is not shared unless the sm_Shared flag is
|
unnamed semaphore is not shared unless the sm_Shared flag is
|
||||||
set.
|
set.
|
||||||
Handle = Receives handle of semaphore.
|
Handle = Receives handle of semaphore.
|
||||||
Attr = One or more of the smXXXX constants.
|
Attr = One or more of the smXXXX constants.
|
||||||
State = Initial state: 0 = Reset (false), 1 = Posted (true).}
|
State = Initial state: 0 = Reset (false), 1 = Posted (true).}
|
||||||
|
function DosCreateEventSem(Name:PChar;var Handle:longint;
|
||||||
|
Attr:longint;State:boolean):longint; cdecl;
|
||||||
|
function DosCreateEventSem(const Name:string;var Handle:longint;
|
||||||
|
Attr:longint;State:boolean):longint;
|
||||||
function DosCreateEventSem(Name:PChar;var Handle:longint;
|
function DosCreateEventSem(Name:PChar;var Handle:longint;
|
||||||
Attr,State:longint):longint; cdecl;
|
Attr,State:longint):longint; cdecl;
|
||||||
function DosCreateEventSem(const Name:string;var Handle:longint;
|
function DosCreateEventSem(const Name:string;var Handle:longint;
|
||||||
@ -1468,7 +1482,11 @@ function DosQueryEventSem(Handle:longint;var Posted:longint):longint; cdecl;
|
|||||||
If a name if used the semaphore is shared.
|
If a name if used the semaphore is shared.
|
||||||
Handle = Receives handle of semaphore.
|
Handle = Receives handle of semaphore.
|
||||||
Attr = One or more of the smXXXX constants.
|
Attr = One or more of the smXXXX constants.
|
||||||
State = Initial state: (0=Unowned, 1=Owned.)}
|
State = Initial state: (0/false=Not owned, 1/true=Owned.)}
|
||||||
|
function DosCreateMutExSem(Name:PChar;var Handle:longint;
|
||||||
|
Attr:longint;State:boolean):longint; cdecl;
|
||||||
|
function DosCreateMutExSem(const Name:string;var Handle:longint;
|
||||||
|
Attr:longint;State:boolean):longint;
|
||||||
function DosCreateMutExSem(Name:PChar;var Handle:longint;
|
function DosCreateMutExSem(Name:PChar;var Handle:longint;
|
||||||
Attr,State:longint):longint; cdecl;
|
Attr,State:longint):longint; cdecl;
|
||||||
function DosCreateMutExSem(const Name:string;var Handle:longint;
|
function DosCreateMutExSem(const Name:string;var Handle:longint;
|
||||||
@ -1488,7 +1506,8 @@ function DosCloseMutExSem(Handle:longint):longint; cdecl;
|
|||||||
process is halted until the semaphore is released.
|
process is halted until the semaphore is released.
|
||||||
Handle = Handle of semaphore.
|
Handle = Handle of semaphore.
|
||||||
Timeout = Return with errorcode if the semaphore is still owned after
|
Timeout = Return with errorcode if the semaphore is still owned after
|
||||||
timeout milliseconds.}
|
timeout milliseconds; special values are Sem_Indefinite_Wait
|
||||||
|
and Sem_Immediate_Return.}
|
||||||
function DosRequestMutExSem(Handle,Timeout:longint):longint; cdecl;
|
function DosRequestMutExSem(Handle,Timeout:longint):longint; cdecl;
|
||||||
|
|
||||||
{Release the ownership of a mutex semaphore.
|
{Release the ownership of a mutex semaphore.
|
||||||
@ -3181,8 +3200,13 @@ function DosCreateEventSem(Name:PChar;var Handle:longint;
|
|||||||
|
|
||||||
external 'DOSCALLS' index 324;
|
external 'DOSCALLS' index 324;
|
||||||
|
|
||||||
|
function DosCreateEventSem(Name:PChar;var Handle:longint;
|
||||||
|
Attr:longint;State:boolean):longint; cdecl;
|
||||||
|
|
||||||
|
external 'DOSCALLS' index 324;
|
||||||
|
|
||||||
function DosCreateEventSem(const Name:string;var Handle:longint;
|
function DosCreateEventSem(const Name:string;var Handle:longint;
|
||||||
Attr,State:longint):longint;
|
Attr:longint;State:boolean):longint;
|
||||||
|
|
||||||
var T:array[0..255] of char;
|
var T:array[0..255] of char;
|
||||||
|
|
||||||
@ -3196,6 +3220,13 @@ begin
|
|||||||
DosCreateEventSem:=DosCreateEventSem(nil,Handle,Attr,State);
|
DosCreateEventSem:=DosCreateEventSem(nil,Handle,Attr,State);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function DosCreateEventSem(const Name:string;var Handle:longint;
|
||||||
|
Attr,State:longint):longint;
|
||||||
|
|
||||||
|
begin
|
||||||
|
DosCreateEventSem:=DosCreateEventSem(Name,Handle,Attr,boolean(State));
|
||||||
|
end;
|
||||||
|
|
||||||
function DosOpenEventSem(Name:PChar;var Handle:longint):longint; cdecl;
|
function DosOpenEventSem(Name:PChar;var Handle:longint):longint; cdecl;
|
||||||
|
|
||||||
external 'DOSCALLS' index 325;
|
external 'DOSCALLS' index 325;
|
||||||
@ -3229,13 +3260,18 @@ function DosQueryEventSem(Handle:longint;var Posted:longint):longint; cdecl;
|
|||||||
|
|
||||||
external 'DOSCALLS' index 330;
|
external 'DOSCALLS' index 330;
|
||||||
|
|
||||||
|
function DosCreateMutExSem(Name:PChar;var Handle:longint;
|
||||||
|
Attr:longint;State:boolean):longint; cdecl;
|
||||||
|
|
||||||
|
external 'DOSCALLS' index 331;
|
||||||
|
|
||||||
function DosCreateMutExSem(Name:PChar;var Handle:longint;
|
function DosCreateMutExSem(Name:PChar;var Handle:longint;
|
||||||
Attr,State:longint):longint; cdecl;
|
Attr,State:longint):longint; cdecl;
|
||||||
|
|
||||||
external 'DOSCALLS' index 331;
|
external 'DOSCALLS' index 331;
|
||||||
|
|
||||||
function DosCreateMutExSem(const Name:string;var Handle:longint;
|
function DosCreateMutExSem(const Name:string;var Handle:longint;
|
||||||
Attr,State:longint):longint;
|
Attr:longint;State:boolean):longint;
|
||||||
|
|
||||||
var T:array[0..255] of char;
|
var T:array[0..255] of char;
|
||||||
|
|
||||||
@ -3249,6 +3285,13 @@ begin
|
|||||||
DosCreateMutExSem:=DosCreateMutExSem(nil,Handle,Attr,State);
|
DosCreateMutExSem:=DosCreateMutExSem(nil,Handle,Attr,State);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function DosCreateMutExSem(const Name:string;var Handle:longint;
|
||||||
|
Attr,State:longint):longint;
|
||||||
|
|
||||||
|
begin
|
||||||
|
DosCreateMutExSem:=DosCreateMutExSem(Name,Handle,Attr,boolean(State));
|
||||||
|
end;
|
||||||
|
|
||||||
function DosOpenMutExSem(Name:PChar;var Handle:longint):longint; cdecl;
|
function DosOpenMutExSem(Name:PChar;var Handle:longint):longint; cdecl;
|
||||||
|
|
||||||
external 'DOSCALLS' index 332;
|
external 'DOSCALLS' index 332;
|
||||||
@ -3949,7 +3992,10 @@ external 'DOSCALLS' index 582;
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.6 2000-12-21 21:12:43 hajny
|
Revision 1.7 2001-01-14 18:59:13 hajny
|
||||||
|
* more compatibility changes (semaphores)
|
||||||
|
|
||||||
|
Revision 1.6 2000/12/21 21:12:43 hajny
|
||||||
* TThreadEntry corrected (needed for FCL)
|
* TThreadEntry corrected (needed for FCL)
|
||||||
|
|
||||||
Revision 1.5 2000/10/26 20:07:19 hajny
|
Revision 1.5 2000/10/26 20:07:19 hajny
|
||||||
|
Loading…
Reference in New Issue
Block a user