From 1260384d79297b4f81fd37bfb7dfbf1614e6fc63 Mon Sep 17 00:00:00 2001 From: vladislav doster Date: Thu, 2 Dec 2021 18:12:13 -0600 Subject: [PATCH] (docs): README.md grammar improvements - improve phrasing - remove verbiage - update headers - fix broken links --- README.md | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index bb92fb6..6626dfa 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,18 @@ -## csp - Golang inspired concurrency library for Tcl +# csp - Golang inspired concurrency library for Tcl -The csp package for Tcl is a concurrency library based on Communicating Sequential Processes and provides two primitives namely coroutines and channels which allow concurrent programming in the style of Golang. +The csp package for Tcl is a concurrency library based on Communicating Sequential Processes. It provides two primitives, namely coroutines and channels, which allow concurrent programming in the style of Golang. -The concepts originate in Hoare's Communicating Sequential Processes while the syntax mimics the Golang implementation. +The concepts originate in Hoare's Communicating Sequential Processes, while the syntax mimics the Golang implementation. -The CSP concurrency model may be visualized as a set of independent processes (coroutines) sending and receiving messages to the named channels. The control flow in the coroutines is coordinated at the points of sending and receiving messages i.e. the coroutine may need to wait while trying to send or receive. Since it must work in a single-threaded interpreter, waiting is non-blocking. Instead of blocking a waiting coroutine gives way to other coroutines. +The CSP concurrency model may be visualized as independent processes (coroutines) sending and receiving messages to the named channels. The coroutine's control flow is coordinated at the points of sending and receiving messages, i.e., the coroutine may need to wait while trying to send or receive. Since it must work in a single-threaded interpreter, waiting is non-blocking. Instead of blocking, a waiting coroutine gives way to other coroutines. This concurrency model may also be seen as a generalization of Unix named pipes where processes and pipes correspond to coroutines and channels. +[Documentation](https://securitykiss.com/resources/tutorials/csp_project/csp.html) +[Intro](https://securitykiss.com/resources/tutorials/csp_project/index.php) -[Documentation] (https://securitykiss.com/resources/tutorials/csp_project/csp.html) - - - - - - -[Intro] (https://securitykiss.com/resources/tutorials/csp_project/index.php) - -### Example +## Example ```tcl @@ -49,4 +42,3 @@ This concurrency model may also be seen as a generalization of Unix named pipes vwait forever ``` -