Quoting Stefan Reichör <[EMAIL PROTECTED]>: > We could allow more than one output buffer. If we try to start such a > feature (we should!) we must be sure that it does no harm to a > working copy or an archive. > > How does tla itself handle the invocation from multiple commands? Can > we rely on the correct behaviour of tla in these cases?
After thinking a bit about it : * any two processes in different working copies can run in parallel (If the local copies are checkouts of the same version, two parallel commits can not succeed, but well, one will fail and that's all) * We need a reader/writer exclusion inside the same tree : - Several read-only operations must be allowed - Any write operation must be exclusive. Commit should be considered as a write operation. > Just some ideas for an implementation: > * Maintain a list with all running tla processes ... With a list of attributes : local-tree, read-only, (other ?) I have one more question : What should we do with process buffers once the process terminates. 1) Kill the buffer. Problem: I like being able to see what happened actually, I don't like front-ends to hide informations to me. (That's one of the reasons why I implemented the *tla-logs* buffer). As a developper, the *tla-process* buffer as it is today is strictly necessary. 2) Keep the buffer forever. Problem: After some time, this will take a huge amount of memory ... 3) Keep a fifo of unused buffers (as a global variable), and implement a kind of garbage collection: When a process terminates, enter it's buffer in the fifo, and kill the last buffer in the fifo. Problem: This is harder to implement ! I think the strategy should be 2) for prototyping, and 3) when the multiple process will be working with 2). Something more that will be needed : buffers like *tla-changes*, *tla-missing*, *tla-revisions*, ... must be renamed *tla-changes<local-tree>* to allow for example sevral "tla changes" process outputs to display in different buffers. This will also require re-wite of some portions of code using global variables. -- Matthieu ------------------------------------------------- envoyé via Webmail/IMAG !
