[Program] new: [Block]. | Manual

[Program] new: [Block].

Forks the program into two programs. Creates another program that will run at the same time as the current program. Both the parent and the child will obtain a reference to the newly created program. The child will obtain a reference to itself passed as a parameter to the code block while the parent will obtain its version of the program instance as the return value of the new: message. Note that spawning a new program will leak memory. The file descriptors used to setup communication between parent and child will be removed when the main program ends but any newly created program will add a descriptor pair to the set. This is a limitation in the current implementation.

 child := Program new: { :program
 	Pen write: 'Child', brk.
 Pen write: 'Parent'.

Welcome to the Citrine Online Manual Pages. This online manual has been generated automatically from source code comments using the shtml.ctr script. All Citrine documentation is also available as a UNIX manual file included in the download package. These pages are just a web version of the original Citrine Programming Language User Manual and Reference Guide.

Improve this manual

You can help to improve this manual. Any help is appreciated! If you spot an error in this manual or you want to contribute, just change the corresponding comment in the original Citrine Programming Language source code hosted on github and create a 'Pull Request'. After the documentation generation script has been invoked again the manual pages will be updated to reflect your contribution and so will these online manual pages.

About Citrine

Citrine is an easy to use programming language for everyone. Citrine is so simple it does not even need special syntax for loops or conditions. You can learn Citrine in just a couple of minutes. Citrine makes programming fun again! Visit the homepage for a quick tutorial.

back to homepage | back to manual menu | top of page