diff options
Diffstat (limited to 'archive/1.vm/filesystem.mu')
-rw-r--r-- | archive/1.vm/filesystem.mu | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/archive/1.vm/filesystem.mu b/archive/1.vm/filesystem.mu new file mode 100644 index 00000000..6ea8e08c --- /dev/null +++ b/archive/1.vm/filesystem.mu @@ -0,0 +1,20 @@ +# example program: copy one file into another, character by character +# BEWARE: this will modify your file system +# before running it, put some text into /tmp/mu-x +# after running it, check /tmp/mu-y + +def main [ + local-scope + source-file:&:source:char <- start-reading null/real-filesystem, [/tmp/mu-x] + sink-file:&:sink:char, write-routine:num <- start-writing null/real-filesystem, [/tmp/mu-y] + { + c:char, done?:bool, source-file <- read source-file + break-if done? + sink-file <- write sink-file, c + loop + } + close sink-file + # make sure to wait for the file to be actually written to disk + # (Mu practices structured concurrency: http://250bpm.com/blog:71) + wait-for-routine write-routine +] |