Difference between revisions of "DosAddMuxWaitSem"

From EDM2
Jump to: navigation, search
(See Also)
m
Line 1: Line 1:
 +
DosAddMuxWaitSem adds an event semaphore or a mutex semaphore a MuxWait semaphore list.
 +
 
=== Syntax ===
 
=== Syntax ===
 
 
  rc = DosAddMuxWaitSem( ''hmuxSemaphore'',
 
  rc = DosAddMuxWaitSem( ''hmuxSemaphore'',
 
                         ''pSemRecord'' );
 
                         ''pSemRecord'' );
 
  
 
=== Parameters ===
 
=== Parameters ===
HMUX ''hmuxSemaphore'' (input)
+
;HMUX ''hmuxSemaphore'' (input):The handle of the MuxWait semaphore to which another semaphore will be added.
The handle of the MuxWait semaphore to which another semaphore will be added.
+
;PSEMRECORD ''pSemRecord'' (input):The address of a SEMRECORD to be added to the specified MuxWait semaphore.
 
+
PSEMRECORD ''pSemRecord'' (input)
+
The address of a SEMRECORD to be added to the specified MuxWait semaphore.
+
 
+
 
   
 
   
 
=== Returns ===
 
=== Returns ===
  APIRET rc
+
APIRET rc
The following values can be returned
+
The following values can be returned        
       
+
{|class="wikitable"
{| border="1"
+
 
|-
 
|-
 
|0
 
|0
Line 59: Line 54:
 
|}   
 
|}   
 
=== Include Info ===
 
=== Include Info ===
 +
#define INCL_DOSSEMAPHORES
 +
#include <os2.h>
  
#define INCL_DOSSEMAPHORES
 
<br>
 
#include &lt;os2.h&gt;
 
 
 
=== Usage Explanation ===
 
 
DosAddMuxWaitSem adds an event semaphore or a mutex semaphore a MuxWait semaphore list.
 
 
=== Relevant Structures ===
 
 
 
=== Gotchas ===
 
=== Gotchas ===
 
+
All processes that have access to a shared MuxWait semaphore must also have access to the event/mutex semaphore that is to be added to the MuxWait list.
All processes that have access to a shared MuxWait semaphore must also have
+
If a process does not have access to this semaphore then it will unblock and return the error ERROR_INVALID_HANDLE. DosAddMuxWaitSem will NOT return an error in this case. The processes wishing to gain access to the MuxWait semaphore will return errors until proper access has been obtained.
access to the event/mutex semaphore that is to be added to the MuxWait list.
+
If a process does not have access to this semaphore then it will unblock and
+
return the error ERROR_INVALID_HANDLE. DosAddMuxWaitSem will NOT return an
+
error in this case. The processes wishing to gain access to the MuxWait  
+
semaphore will return errors until proper access has been obtained.
+
  
 
=== Sample Code ===
 
=== Sample Code ===
 
 
<PRE>
 
<PRE>
 
#define INCL_DOSSEMAPHORES
 
#define INCL_DOSSEMAPHORES
Line 105: Line 85:
 
}
 
}
 
</PRE>
 
</PRE>
 +
 
=== See Also ===
 
=== See Also ===
[[OS2 API:CPI:DosCloseMuxWaitSem|DosCloseMuxWaitSem]], [[OS2 API:CPI:DosCreateMuxWaitSem|DosCreateMuxWaitSem]],[[OS2 API:CPI:DosDeleteMuxWaitSem|DosDeleteMuxWaitSem]] [[OS2 API:CPI:DosOpenMuxWaitSem|DosOpenMuxWaitSem]], [[OS2 API:CPI:DosQueryMuxWaitSem|DosQueryMuxWaitSem]], [[OS2 API:CPI:DosWaitMuxWaitSem|DosWaitMuxWaitSem]]  
+
*[[DosCloseMuxWaitSem]]
 +
*[[DosCreateMuxWaitSem]]
 +
*[[DosDeleteMuxWaitSem]]
 +
*[[DosOpenMuxWaitSem]]
 +
*[[DosQueryMuxWaitSem]]
 +
*[[DosWaitMuxWaitSem]]  
  
[[Category:The OS/2 API Project]]
+
[[Category:Dos]]

Revision as of 15:58, 23 November 2016

DosAddMuxWaitSem adds an event semaphore or a mutex semaphore a MuxWait semaphore list.

Syntax

rc = DosAddMuxWaitSem( hmuxSemaphore,
                       pSemRecord );

Parameters

HMUX hmuxSemaphore (input)
The handle of the MuxWait semaphore to which another semaphore will be added.
PSEMRECORD pSemRecord (input)
The address of a SEMRECORD to be added to the specified MuxWait semaphore.

Returns

APIRET rc

The following values can be returned

0 NO_ERROR Operation was

successful.

6 ERROR_INVALID_HANDLE Error, The value in hmuxSemaphore does not point to a valid

semaphore, The calling process must first have access to the semaphore in question

8 ERROR_NOT_ENOUGH_MEMORY Error, The system memory limit has been exhausted
87 ERROR_INVALID_PARAMETER Error, One or more of the parameters contains an illegal value.
100 ERROR_TOO_MANY_SEMAPHORES Error, The system limit of 64 semaphores has been exceeded for this

MuxWait semaphore.

105 ERROR_SEM_OWNER_DIED Error, The owner of the MuxWait semaphore specified has

terminated.

284 ERROR_DUPLICATE_HANDLE Error, The semaphore referred to in pSemRecord has already been

added to the specified MuxWait semaphore.

292 ERROR_WRONG_TYPE Error, The semaphore referred to in pSemRecord is of a different

type than those already in the list for hmuxSemaphore.

Include Info

#define INCL_DOSSEMAPHORES
#include <os2.h>

Gotchas

All processes that have access to a shared MuxWait semaphore must also have access to the event/mutex semaphore that is to be added to the MuxWait list. If a process does not have access to this semaphore then it will unblock and return the error ERROR_INVALID_HANDLE. DosAddMuxWaitSem will NOT return an error in this case. The processes wishing to gain access to the MuxWait semaphore will return errors until proper access has been obtained.

Sample Code

#define INCL_DOSSEMAPHORES
#include 

HMUX  hmuxMySemaphore;     /* MySemaphore handle */
SEMRECORD SemRecord;       /* Record containing info about the sem */
                           /* I want to add to MySemaphore's list */

	/* access is gained to the semaphore in question */
	/* either by DosCreateMuxWaitSem ... */
	/* ... or by DosOpenMuxWaitSem */
	/* its handle is placed in hmuxMySemaphore */

	/* SemRecord is filled with appropriate information about */
	/* the semaphore I wish to add to hmuxMySemaphore's list */

	rc = DosAddMuxWaitSem(hmuxMySemaphore, &SemRecord);

	if (rc != 0)
	{
	  /* We got an error to take care of. */
	}

See Also