251 </ul> <p id="GUID-F17D0FE5-BA42-575B-8971-C5B034CF404E"><b>The calling thread must |
251 </ul> <p id="GUID-F17D0FE5-BA42-575B-8971-C5B034CF404E"><b>The calling thread must |
252 own the semaphore</b> </p> <p>A semaphore can be waited on only by the thread |
252 own the semaphore</b> </p> <p>A semaphore can be waited on only by the thread |
253 that owns it. This precondition is needed when the described function calls |
253 that owns it. This precondition is needed when the described function calls |
254 a semaphore wait function. </p> <p id="GUID-8D9D08F5-0CBD-52BB-B416-636516982D47"><b>The calling thread must |
254 a semaphore wait function. </p> <p id="GUID-8D9D08F5-0CBD-52BB-B416-636516982D47"><b>The calling thread must |
255 not be explicitly suspended</b> </p> <p>This refers to nanokernel threads, |
255 not be explicitly suspended</b> </p> <p>This refers to nanokernel threads, |
256 not Symbian OS threads. The described function must not be used if the thread |
256 not Symbian platform threads. The described function must not be used if the |
257 is in the suspended state. One of the possible reasons for this is that the |
257 thread is in the suspended state. One of the possible reasons for this is |
258 described function does not check the thread's suspend count. </p> <p>A thread |
258 that the described function does not check the thread's suspend count. </p> <p>A |
259 may be created suspended, or the thread may be put into a suspended state |
259 thread may be created suspended, or the thread may be put into a suspended |
260 using <xref href="GUID-379D9320-AC3C-3206-8A5D-EE6E5983EBDC.dita#GUID-379D9320-AC3C-3206-8A5D-EE6E5983EBDC/GUID-FF94D458-C2D0-3D20-ADD6-AAE68A3296C3"><apiname>NThreadBase::Suspend()</apiname></xref>. If you don't know whether |
260 state using <xref href="GUID-379D9320-AC3C-3206-8A5D-EE6E5983EBDC.dita#GUID-379D9320-AC3C-3206-8A5D-EE6E5983EBDC/GUID-FF94D458-C2D0-3D20-ADD6-AAE68A3296C3"><apiname>NThreadBase::Suspend()</apiname></xref>. If you don't know whether |
261 or not the thread is suspended, use <xref href="GUID-379D9320-AC3C-3206-8A5D-EE6E5983EBDC.dita#GUID-379D9320-AC3C-3206-8A5D-EE6E5983EBDC/GUID-82E43D79-721D-31A9-B9ED-1277F2300914"><apiname>NThreadBase::CheckSuspendThenReady()</apiname></xref>. </p> <p>See |
261 or not the thread is suspended, use <xref href="GUID-379D9320-AC3C-3206-8A5D-EE6E5983EBDC.dita#GUID-379D9320-AC3C-3206-8A5D-EE6E5983EBDC/GUID-82E43D79-721D-31A9-B9ED-1277F2300914"><apiname>NThreadBase::CheckSuspendThenReady()</apiname></xref>. </p> <p>See |
262 also <xref href="GUID-379D9320-AC3C-3206-8A5D-EE6E5983EBDC.dita#GUID-379D9320-AC3C-3206-8A5D-EE6E5983EBDC/GUID-C0A6E734-7DE6-37B9-AAB2-A2A0E2664731"><apiname>NThreadBase::Resume()</apiname></xref> and <xref href="GUID-379D9320-AC3C-3206-8A5D-EE6E5983EBDC.dita#GUID-379D9320-AC3C-3206-8A5D-EE6E5983EBDC/GUID-BE92FBC3-A7D9-3576-A1A9-7BBA6EE64226"><apiname>NThreadBase::ForceResume()</apiname></xref>. </p> <p> <i>Note |
262 also <xref href="GUID-379D9320-AC3C-3206-8A5D-EE6E5983EBDC.dita#GUID-379D9320-AC3C-3206-8A5D-EE6E5983EBDC/GUID-C0A6E734-7DE6-37B9-AAB2-A2A0E2664731"><apiname>NThreadBase::Resume()</apiname></xref> and <xref href="GUID-379D9320-AC3C-3206-8A5D-EE6E5983EBDC.dita#GUID-379D9320-AC3C-3206-8A5D-EE6E5983EBDC/GUID-BE92FBC3-A7D9-3576-A1A9-7BBA6EE64226"><apiname>NThreadBase::ForceResume()</apiname></xref>. </p> <p> <i>Note |
263 that these functions are for use only in an RTOS personality layer.</i> </p> <p id="GUID-910660F9-F30F-5725-981D-52F65F7FDB81"><b>The calling thread must |
263 that these functions are for use only in an RTOS personality layer.</i> </p> <p id="GUID-910660F9-F30F-5725-981D-52F65F7FDB81"><b>The calling thread must |
264 hold the mutex</b> </p> <p>The calling thread has waited for a mutex and acquired |
264 hold the mutex</b> </p> <p>The calling thread has waited for a mutex and acquired |
265 it. This precondition is needed when the thread is about to release the mutex, |
265 it. This precondition is needed when the thread is about to release the mutex, |
279 property is a single value used by “Publish and Subscribe”. Each property |
279 property is a single value used by “Publish and Subscribe”. Each property |
280 must be opened before it can be used. To open a property, use either <xref href="GUID-39D6B924-3FA3-39E6-A6EA-88E2D1927AC2.dita#GUID-39D6B924-3FA3-39E6-A6EA-88E2D1927AC2/GUID-DBEDDC3A-AE6F-3CAF-B251-4AA556EAF21C"><apiname>RPropertyRef::Attach()</apiname></xref> or <xref href="GUID-39D6B924-3FA3-39E6-A6EA-88E2D1927AC2.dita#GUID-39D6B924-3FA3-39E6-A6EA-88E2D1927AC2/GUID-6F8EB0AB-C01A-3BFD-B334-D9C9FB923865"><apiname>RPropertyRef::Open()</apiname></xref>. Once opened, the property cannot be opened again. </p> <p>The pre-condition |
280 must be opened before it can be used. To open a property, use either <xref href="GUID-39D6B924-3FA3-39E6-A6EA-88E2D1927AC2.dita#GUID-39D6B924-3FA3-39E6-A6EA-88E2D1927AC2/GUID-DBEDDC3A-AE6F-3CAF-B251-4AA556EAF21C"><apiname>RPropertyRef::Attach()</apiname></xref> or <xref href="GUID-39D6B924-3FA3-39E6-A6EA-88E2D1927AC2.dita#GUID-39D6B924-3FA3-39E6-A6EA-88E2D1927AC2/GUID-6F8EB0AB-C01A-3BFD-B334-D9C9FB923865"><apiname>RPropertyRef::Open()</apiname></xref>. Once opened, the property cannot be opened again. </p> <p>The pre-condition |
281 means that the property must already be open before calling the described |
281 means that the property must already be open before calling the described |
282 function. </p> <p id="GUID-F1485BCB-8384-518B-AE5B-F8387DF0C8F4"><b>Must be called under an |
282 function. </p> <p id="GUID-F1485BCB-8384-518B-AE5B-F8387DF0C8F4"><b>Must be called under an |
283 XTRAP harness or calling thread must not be in a critical section</b> </p> <p>Each |
283 XTRAP harness or calling thread must not be in a critical section</b> </p> <p>Each |
284 Symbian OS thread can be associated with a kernel-side exception handler, |
284 Symbian platform thread can be associated with a kernel-side |
285 set using XTRAP(); for example, to detect bad memory accesses. </p> <p>The |
285 exception handler, set using XTRAP(); for example, to detect bad memory accesses. </p> <p>The |
286 described function can legitimately cause an exception, and the pre-condition |
286 described function can legitimately cause an exception, and the pre-condition |
287 means that </p> <p> <i>either</i>: </p> <ul> |
287 means that </p> <p> <i>either</i>: </p> <ul> |
288 <li id="GUID-485A8370-E3D5-5E67-9136-3150EC050DF0"><p>the described function |
288 <li id="GUID-485A8370-E3D5-5E67-9136-3150EC050DF0"><p>the described function |
289 should be called inside an XTRAP() harness to catch the exception </p> </li> |
289 should be called inside an XTRAP() harness to catch the exception </p> </li> |
290 </ul> <p> <i>or</i> </p> <ul> |
290 </ul> <p> <i>or</i> </p> <ul> |
311 calling the described function, e.g. by calling <codeph>DCodeSeg::Wait()</codeph>. </p> <p id="GUID-9A82D0DD-7599-5511-AD9E-2930ADC99AC0"><b>Any kind of lock can be |
311 calling the described function, e.g. by calling <codeph>DCodeSeg::Wait()</codeph>. </p> <p id="GUID-9A82D0DD-7599-5511-AD9E-2930ADC99AC0"><b>Any kind of lock can be |
312 held</b> </p> <p>The described function can be called with any kind of lock. </p> <p id="GUID-F9800056-B5E5-576D-B440-544AE067D4DC"><b>Call only from Init1() in |
312 held</b> </p> <p>The described function can be called with any kind of lock. </p> <p id="GUID-F9800056-B5E5-576D-B440-544AE067D4DC"><b>Call only from Init1() in |
313 base port</b> </p> <p>The pre-condition means that the described function |
313 base port</b> </p> <p>The pre-condition means that the described function |
314 can only be called during the first phase of kernel initialisation, i.e. during |
314 can only be called during the first phase of kernel initialisation, i.e. during |
315 execution of the Base Port implementation of <codeph>Asic::Init1()</codeph>. |
315 execution of the Base Port implementation of <codeph>Asic::Init1()</codeph>. |
316 See the Base Porting <xref href="GUID-A7F6C8D5-B85B-537B-8A19-99149FBE8C01.dita">Quick |
316 See the <xref href="GUID-DEB51862-A72B-5FB7-B1BA-F34685E71BFF.dita">Board Support |
317 Start</xref>. </p> <p>This condition may apply because the described function: </p> <ul> |
317 Packages Quick Start</xref>. </p> <p>This condition may apply because the |
|
318 described function: </p> <ul> |
318 <li id="GUID-62621625-D712-5F4C-B31D-067E5887D8FD"><p>must be called before |
319 <li id="GUID-62621625-D712-5F4C-B31D-067E5887D8FD"><p>must be called before |
319 any context switch </p> </li> |
320 any context switch </p> </li> |
320 <li id="GUID-FB33B022-A388-5508-9C98-33518154BBBA"><p>must be called before |
321 <li id="GUID-FB33B022-A388-5508-9C98-33518154BBBA"><p>must be called before |
321 the MMU is turned on. </p> </li> |
322 the MMU is turned on. </p> </li> |
322 </ul> <p id="GUID-6122C9C6-05EB-508C-8C9A-45B6A8DAB42C"><b>The various parameters must |
323 </ul> <p id="GUID-6122C9C6-05EB-508C-8C9A-45B6A8DAB42C"><b>The various parameters must |