Mercurial > hg > Gears > Gears
changeset 845:feb874340610
use local variable
author | anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 21 Jan 2021 17:01:16 +0900 |
parents | 49408bce514c |
children | 348d6f20134e |
files | src/parallel_execution/examples/DPP2/PhilsImpl.cbc |
diffstat | 1 files changed, 12 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/src/parallel_execution/examples/DPP2/PhilsImpl.cbc Thu Jan 21 16:39:39 2021 +0900 +++ b/src/parallel_execution/examples/DPP2/PhilsImpl.cbc Thu Jan 21 17:01:16 2021 +0900 @@ -22,7 +22,7 @@ phils->phils = (union Data*)phils_impl; phils_impl->Leftfork = left; phils_impl->Rightfork = right; - phils_impl->self = 0; + phils_impl->self = id; phils->putdown_lfork = C_putdown_lfork_PhilsImpl; phils->putdown_rfork = C_putdown_rfork_PhilsImpl; phils->eating = C_eating_PhilsImpl; @@ -33,30 +33,34 @@ } __code putdown_lfork_PhilsImpl(struct PhilsImpl* phils, __code next(...)) { - goto phils->Leftfork->set(-1, putdown_rfork_PhilsImpl); + struct AtomicT_int* left_fork = phils->Leftfork; + goto left_fork->set(-1, putdown_rfork_PhilsImpl); } __code putdown_rfork_PhilsImpl(struct PhilsImpl* phils, __code next(...)) { - goto phils->Rightfork->set(-1, putdown_lfork_PhilsImpl); + struct AtomicT_int* right_fork = phils->Rightfork; + goto right_fork->set(-1, putdown_lfork_PhilsImpl); } __code thinking_PhilsImpl(struct PhilsImpl* phils, struct Fork* fork, __code next(...)) { - printf("%d: thinking\n", phils->phils->id); - goto pickup_lfork(phils_impl->self); + printf("%d: thinking\n", phils->self); + goto pickup_lfork(phils->self); } __code pickup_rfork_PhilsImpl(struct PhilsImpl* phils, __code next(...)) { - goto phils->Rightfork->checkAndSet(id, -1, pickup_lfork, pickup_rfork); + struct AtomicT_int* right_fork = phils->Rightfork; + goto right_fork->checkAndSet(&phils->id, -1, pickup_lfork, pickup_rfork); } __code pickup_lfork_PhilsImpl(struct PhilsImpl* phils, __code next(...)) { - goto phils->Leftfork->checkAndSet(id, -1, pickup_rfork, eating); + struct AtomicT_int* left_fork = phils->Leftfork; + goto left_fork->checkAndSet(id, -1, pickup_rfork, eating); } __code eating_PhilsImpl(struct PhilsImpl* phils, __code next(...)) { - printf("%d: eating\n", phils_impl->self->id); + printf("%d: eating\n", phils->self); goto putdown_rfork(); }