c{0: 0 (((1 integer)) <- ((init-list)) ((3 literal)) ((4 literal)) ((5 literal))) -- nil c{1: 0 ✓ (((1 integer)) <- ((init-list)) ((3 literal)) ((4 literal)) ((5 literal))) cn0: convert-names in main cn0: (((1 integer)) <- ((init-list)) ((3 literal)) ((4 literal)) ((5 literal))) nil nil cn0: checking arg ((3 literal)) cn0: checking arg ((4 literal)) cn0: checking arg ((5 literal)) cn0: checking oarg ((1 integer)) maybe-add: ((1 integer)) cn1: (((1 integer)) <- ((init-list)) ((3 literal)) ((4 literal)) ((5 literal))) schedule: main run: main 0: (((1 integer)) <- ((init-list)) ((3 literal)) ((4 literal)) ((5 literal))) run: init-list/main 0: (((default-space space-address)) <- ((new)) ((space literal)) ((30 literal))) run: init-list/main 0: 1000 => ((default-space space-address)) run: init-list/main 1: (((1 list-address)) <- ((new)) ((list literal))) run: init-list/main 1: 1031 => ((1 list-address)) mem: ((1 list-address)): 1002 <= 1031 run: init-list/main 2: (((2 list-address)) <- ((copy)) ((1 list-address))) mem: ((1 list-address)) => 1031 run: init-list/main 2: 1031 => ((2 list-address)) mem: ((2 list-address)): 1003 <= 1031 run: init-list/main 3: (((3 integer)) ((4 boolean)) <- ((next-input))) arg: nil 0 (3 4 5) run: init-list/main 3: 3 => ((3 integer)) mem: ((3 integer)): 1004 <= 3 run: init-list/main 3: t => ((4 boolean)) mem: ((4 boolean)): 1005 <= t run: init-list/main 4: (((jump-unless)) ((4 boolean)) ((6 offset))) mem: ((4 boolean)) => t run: init-list/main 5: (((5 list-address-address)) <- ((get-address)) ((2 list-address) (deref)) ((1 offset))) run: init-list/main 5: 1033 => ((5 list-address-address)) mem: ((5 list-address-address)): 1006 <= 1033 run: init-list/main 6: (((5 list-address-address) (deref)) <- ((new)) ((list literal))) run: init-list/main 6: 1034 => ((5 list-address-address) (deref)) mem: ((5 list-address-address) (deref)): 1033 <= 1034 run: init-list/main 7: (((2 list-address)) <- ((list-next)) ((2 list-address))) mem: ((2 list-address)) => 1031 run: list-next/init-list/main 0: (((default-space space-address)) <- ((new)) ((space literal)) ((30 literal))) run: list-next/init-list/main 0: 1037 => ((default-space space-address)) run: list-next/init-list/main 1: (((1 list-address)) <- ((next-input))) arg: nil 0 (1031) run: list-next/init-list/main 1: 1031 => ((1 list-address)) mem: ((1 list-address)): 1039 <= 1031 run: list-next/init-list/main 2: (((2 list-address)) <- ((get)) ((1 list-address) (deref)) ((1 offset))) mem: ((1033 list-address) (raw)) => 1034 run: list-next/init-list/main 2: 1034 => ((2 list-address)) mem: ((2 list-address)): 1040 <= 1034 run: list-next/init-list/main 3: (((reply)) ((2 list-address))) mem: ((2 list-address)) => 1034 run: init-list/main 7: 1034 => ((2 list-address)) mem: ((2 list-address)): 1003 <= 1034 run: init-list/main 8: (((6 tagged-value-address)) <- ((list-value-address)) ((2 list-address))) mem: ((2 list-address)) => 1034 run: list-value-address/init-list/main 0: (((default-space space-address)) <- ((new)) ((space literal)) ((30 literal))) run: list-value-address/init-list/main 0: 1068 => ((default-space space-address)) run: list-value-address/init-list/main 1: (((1 list-address)) <- ((next-input))) arg: nil 0 (1034) run: list-value-address/init-list/main 1: 1034 => ((1 list-address)) mem: ((1 list-address)): 1070 <= 1034 run: list-value-address/init-list/main 2: (((2 tagged-value-address)) <- ((get-address)) ((1 list-address) (deref)) ((0 offset))) run: list-value-address/init-list/main 2: 1034 => ((2 tagged-value-address)) mem: ((2 tagged-value-address)): 1071 <= 1034 run: list-value-address/init-list/main 3: (((reply)) ((2 tagged-value-address))) mem: ((2 tagged-value-address)) => 1034 run: init-list/main 8: 1034 => ((6 tagged-value-address)) mem: ((6 tagged-value-address)): 1007 <= 1034 run: init-list/main 9: (((6 tagged-value-address) (deref)) <- ((save-type)) ((3 integer))) mem: ((3 integer)) => 3 run: init-list/main 9: #(tagged record (integer 3)) => ((6 tagged-value-address) (deref)) mem: ((6
#ifndef MESSAGE_H
#define MESSAGE_H

#include "common.h"
#include "commonuser.h"

typedef struct Thread Thread;

void sendMesage(Thread* thread, SosoMessage* message);

uint32 getMessageQueueCount(Thread* thread);

//returns remaining message count
int32 getNextMessage(Thread* thread, SosoMessage* message);

#endif // MESSAGE_H
list/main 11: 1034 => ((1 list-address)) mem: ((1 list-address)): 1002 <= 1034 run: init-list/main 12: (((reply)) ((1 list-address))) mem: ((1 list-address)) => 1034 run: main 0: 1034 => ((1 integer)) mem: ((1 integer)): 1 <= 1034 schedule: done with routine nil