// // Cforall Version 1.0.0 Copyright (C) 2020 University of Waterloo // // The contents of this file are covered under the licence agreement in the // file "LICENCE" distributed with Cforall. // // io.cfa -- // // Author : Thierry Delisle // Created On : Thu Feb 18 20:31:00 2021 // Last Modified By : // Last Modified On : // Update Count : // #include #include #include #include thread EchoThread {}; void main(EchoThread & this) { char buffer[100]; for() { int ret = cfa_read(0, buffer + 1, 97, 0); if(ret < 0) { serr | "Failed to read from fd 0"; exit(1); } if(ret == 0) return; buffer[0] = '\''; buffer[ret] = '\''; buffer[ret+1] = '\n'; ret = cfa_write(1, buffer, ret + 2, 0); if(ret < 0) { serr | "Failed to write from fd 1 (ET)"; exit(1); } } } thread HeartBeatThread {}; void main(HeartBeatThread & this) { for() { waitfor( ^?{} : this) { return; } or else; int ret = cfa_write(1, ".", 1, 0); if(ret < 0) { serr | "Failed to write from fd 1 (ET)"; exit(1); } sleep(5`s); } } int main() { HeartBeatThread hb; { EchoThread et; } }