Mercurial > cgi-bin > hgwebdir.cgi > VMS > VMS_Implementations > VMS_impls > VMS__MC_shared_impl
comparison MasterLoop.c @ 138:38c1070e2c92
closing branch test_without_inline
| author | Merten Sach <msach@mailbox.tu-berlin.de> |
|---|---|
| date | Mon, 19 Sep 2011 14:17:06 +0200 |
| parents | dd3e60aeae26 |
| children |
comparison
equal
deleted
inserted
replaced
| 18:02ee9d62f45e | 19:01425ce916a6 |
|---|---|
| 11 | 11 |
| 12 #include "VMS.h" | 12 #include "VMS.h" |
| 13 | 13 |
| 14 | 14 |
| 15 //=========================================================================== | 15 //=========================================================================== |
| 16 void inline | 16 void |
| 17 stealWorkInto( SchedSlot *currSlot, VMSQueueStruc *readyToAnimateQ, | 17 stealWorkInto( SchedSlot *currSlot, VMSQueueStruc *readyToAnimateQ, |
| 18 VirtProcr *masterPr ); | 18 VirtProcr *masterPr ); |
| 19 | 19 |
| 20 //=========================================================================== | 20 //=========================================================================== |
| 21 | 21 |
| 204 | 204 |
| 205 | 205 |
| 206 /*This has a race condition -- the coreloops are accessing their own queues | 206 /*This has a race condition -- the coreloops are accessing their own queues |
| 207 * at the same time that this work-stealer on a different core is trying to | 207 * at the same time that this work-stealer on a different core is trying to |
| 208 */ | 208 */ |
| 209 void inline | 209 void |
| 210 stealWorkInto( SchedSlot *currSlot, VMSQueueStruc *readyToAnimateQ, | 210 stealWorkInto( SchedSlot *currSlot, VMSQueueStruc *readyToAnimateQ, |
| 211 VirtProcr *masterPr ) | 211 VirtProcr *masterPr ) |
| 212 { | 212 { |
| 213 VirtProcr *stolenPr; | 213 VirtProcr *stolenPr; |
| 214 int32 coreIdx, i; | 214 int32 coreIdx, i; |
| 307 * compares to exit progress then to wait progress. When one of two | 307 * compares to exit progress then to wait progress. When one of two |
| 308 * matches, proceed. Take work from the coreloop's queue. When done, | 308 * matches, proceed. Take work from the coreloop's queue. When done, |
| 309 * write FALSE to the gate closed var. | 309 * write FALSE to the gate closed var. |
| 310 * | 310 * |
| 311 */ | 311 */ |
| 312 void inline | 312 void |
| 313 gateProtected_stealWorkInto( SchedSlot *currSlot, | 313 gateProtected_stealWorkInto( SchedSlot *currSlot, |
| 314 VMSQueueStruc *myReadyToAnimateQ, | 314 VMSQueueStruc *myReadyToAnimateQ, |
| 315 VirtProcr *masterPr ) | 315 VirtProcr *masterPr ) |
| 316 { | 316 { |
| 317 VirtProcr *stolenPr; | 317 VirtProcr *stolenPr; |
