@@ -339,44 +339,50 @@ struct Pos c_future_make() {
339
339
void c_future_fill (struct Pos future , struct Pos value ) {
340
340
Future * f = (Future * )future .obj ;
341
341
switch (f -> state ) {
342
- case EMPTY :
343
- f -> state = FILLED ;
344
- f -> payload .value = value ;
345
- break ;
346
- case FILLED :
347
- erasePositive (future );
348
- erasePositive (value );
349
- // TODO more graceful panic
350
- fprintf (stderr , "ERROR: Future already filled\n" );
351
- exit (1 );
352
- break ;
353
- case WAITED :
354
- Stack stack = f -> payload .stack ;
355
- free (f );
356
- resume_Pos (stack , value );
357
- break ;
342
+ case EMPTY : {
343
+ f -> state = FILLED ;
344
+ f -> payload .value = value ;
345
+ break ;
346
+ }
347
+ case FILLED : {
348
+ erasePositive (future );
349
+ erasePositive (value );
350
+ // TODO more graceful panic
351
+ fprintf (stderr , "ERROR: Future already filled\n" );
352
+ exit (1 );
353
+ break ;
354
+ }
355
+ case WAITED : {
356
+ Stack stack = f -> payload .stack ;
357
+ free (f );
358
+ resume_Pos (stack , value );
359
+ break ;
360
+ }
358
361
}
359
362
}
360
363
361
364
void c_future_wait (struct Pos future , Stack stack ) {
362
365
Future * f = (Future * )future .obj ;
363
366
switch (f -> state ) {
364
- case EMPTY :
365
- f -> state = WAITED ;
366
- f -> payload .stack = stack ;
367
- break ;
368
- case FILLED :
369
- struct Pos value = f -> payload .value ;
370
- free (f );
371
- resume_Pos (stack , value );
372
- break ;
373
- case WAITED :
374
- erasePositive (future );
375
- eraseStack (stack );
376
- // TODO more graceful panic
377
- fprintf (stderr , "ERROR: Future already waited\n" );
378
- exit (1 );
379
- break ;
367
+ case EMPTY : {
368
+ f -> state = WAITED ;
369
+ f -> payload .stack = stack ;
370
+ break ;
371
+ }
372
+ case FILLED : {
373
+ struct Pos value = f -> payload .value ;
374
+ free (f );
375
+ resume_Pos (stack , value );
376
+ break ;
377
+ }
378
+ case WAITED : {
379
+ erasePositive (future );
380
+ eraseStack (stack );
381
+ // TODO more graceful panic
382
+ fprintf (stderr , "ERROR: Future already waited\n" );
383
+ exit (1 );
384
+ break ;
385
+ }
380
386
}
381
387
}
382
388
0 commit comments