source:
tests/concurrency/actors/inherit.cfa@
8e90fd6
| Last change on this file since 8e90fd6 was 6a6e205, checked in by , 10 months ago | |
|---|---|
|
|
| File size: 1.1 KB | |
| Rev | Line | |
|---|---|---|
| [1950837] | 1 | #include <actor.hfa> |
| 2 | #include <fstream.hfa> | |
| 3 | #include <stdlib.hfa> | |
| 4 | #include <string.h> | |
| 5 | #include <stdio.h> | |
| 6 | #include <mutex_stmt.hfa> | |
| 7 | ||
| 8 | struct Server { inline actor; }; | |
| 9 | ||
| [f6fd22a4] | 10 | struct Server2 { inline Server; int b; }; |
| [1950837] | 11 | void ^?{}( Server2 & this ) { mutex(sout) sout | 'A'; } |
| [f6fd22a4] | 12 | |
| 13 | struct D_msg { int a; inline message; }; | |
| [1950837] | 14 | void ?{}( D_msg & this ) { set_allocation( this, Delete ); } |
| [bdf4cd9e] | 15 | void ^?{}( D_msg & ) { mutex(sout) sout | 'A'; } |
| [1950837] | 16 | |
| [f6fd22a4] | 17 | struct D_msg2 { inline D_msg; }; |
| 18 | ||
| [c880a7b] | 19 | allocation handle() { |
| [7edf912] | 20 | return Finished; |
| [1950837] | 21 | } |
| 22 | ||
| [6a6e205] | 23 | allocation receive( Server &, D_msg & ) { return handle(); } |
| 24 | allocation receive( Server &, D_msg2 & ) { return handle(); } | |
| 25 | allocation receive( Server2 &, D_msg & ) { return Delete; } | |
| 26 | allocation receive( Server2 &, D_msg2 & ) { return Delete; } | |
| [1950837] | 27 | |
| 28 | int main() { | |
| [7edf912] | 29 | sout | "Start"; |
| 30 | { | |
| [41882628] | 31 | actor_start(); |
| [7edf912] | 32 | D_msg * dm = alloc(); |
| 33 | (*dm){}; | |
| 34 | D_msg2 * dm2 = alloc(); | |
| 35 | (*dm2){}; | |
| 36 | Server2 * s = alloc(); | |
| 37 | (*s){}; | |
| 38 | Server2 * s2 = alloc(); | |
| 39 | (*s2){}; | |
| 40 | *s | *dm; | |
| 41 | *s2 | *dm2; | |
| [41882628] | 42 | actor_stop(); |
| [7edf912] | 43 | } |
| 44 | { | |
| [41882628] | 45 | actor_start(); |
| [7edf912] | 46 | Server s[2]; |
| 47 | D_msg * dm = alloc(); | |
| 48 | (*dm){}; | |
| 49 | D_msg2 * dm2 = alloc(); | |
| 50 | (*dm2){}; | |
| 51 | s[0] | *dm; | |
| 52 | s[1] | *dm2; | |
| [41882628] | 53 | actor_stop(); |
| [7edf912] | 54 | } |
| 55 | sout | "Finished"; | |
| 56 | } |
Note:
See TracBrowser
for help on using the repository browser.