diff --git a/brandt.c b/brandt.c index 4f5a3f5..685c878 100644 --- a/brandt.c +++ b/brandt.c @@ -88,6 +88,8 @@ static void seller_start (void *arg) { struct BRANDT_Auction *ad = (struct BRANDT_Auction *)arg; + enum auction_type atype; + enum outcome_type outcome; ad->task = NULL; @@ -97,6 +99,12 @@ seller_start (void *arg) /** todo: somehow mark auction as done / ready for cleanup */ return; } + + atype = ad->m > 0 ? auction_mPlusFirstPrice : auction_firstPrice; + outcome = ad->outcome_public ? outcome_public : outcome_private; + + if (handler_prep[atype][outcome][msg_init]) + handler_prep[atype][outcome][msg_init] (ad); }