(name 'OSProcess-dtl.73' message 'OSProcess 4.4.12
Do not permit a BufferedAsyncFileReadStream to consume memory indefinitely. Fix spelling errors in comments.' id '383fe5f9-1810-4628-9c48-0027b76ea219' date '7 December 2012' time '8:16:42.09 pm' author 'dtl' ancestors ((name 'OSProcess-dtl.72' message 'OSProcess 4.4.11

Add AioEventHandler class>>initializeAioPluginPresent to prevent a warning dialog after image startup if the AioPlugin is not present.' id '3343d538-df87-4642-9296-a693ddc6fc54' date '3 October 2012' time '8:32:56.328 pm' author 'dtl' ancestors ((name 'OSProcess-dtl.71' message 'OSProcess 4.4.10

Better exit status decoding for unix processes. The system call wait() answers an integer value, and the C runtime library has macros to decode its bitmap value. A unix shell relies of the decoded value, either a normal exit status or a signal number of signal causing exit.

Add class UnixProcessExitStatus to decode unix process exit status in a manner similar to that of a unix shell for GNU unix systems, and use this for ExternalUnixOSProcess>>printOn:. This may not be portable across unix systems but is nevertheless used to provide a better printString description of process exit status for external unix processes.' id 'fa188ba6-b2fb-4cac-83b5-4aaefe61c684' date '23 August 2012' time '11:16:05.631 pm' author 'dtl' ancestors ((name 'OSProcess-dtl.70' message 'OSProcess 4.4.9
Add environment accessors for WindowsProcess (thanks Damian Cassou)' id '290c99d2-03a8-46c2-8880-f9c30e85ff15' date '3 May 2012' time '9:34:29.904 pm' author 'dtl' ancestors ((name 'OSProcess-dtl.69' message 'OSProcess 4.4.8
Fix file handle leak in OSPipeTestCase>>testIsAtEndOfFile' id '3ab707ee-a107-4790-9c6b-f7b3c96a5326' date '24 April 2012' time '8:34:21.371 pm' author 'dtl' ancestors ((name 'OSProcess-dtl.68' message 'OSProcess 4.4.7
Add bounds check to AioEventHandler>>hasValidHandler to protect for image restart with smaller externalObjects array' id '54c76ecc-e255-4104-80f6-c6ff27937f60' date '23 April 2012' time '6:58:07.812 am' author 'dtl' ancestors ((name 'OSProcess-dtl.67' message 'OSProcess 4.4.7
Fix improper usage of assert: in UnixProcessAccessorTestCase>>testDupTo' id '9d00f49b-7981-46b9-b280-05fc8e211702' date '22 April 2012' time '4:53:52.378 pm' author 'dtl' ancestors ((name 'OSProcess-dtl.66' message 'OSProcess 4.4.6

Ensure that AioEventHandler event process has been started before completing initialization, to ensure that event notification has been initialized before use.' id 'f9a3c33d-c105-4d70-a764-e7d1b68365b2' date '13 November 2011' time '1:14:29.713 am' author 'dtl' ancestors ((name 'OSProcess-dtl.65' message 'OSProcess 4.4.5

Remove bad changes to isStdIn, isStdOut and isStdErr from last update (4.4.4). These were unnecessary and caused image hang on startup when running on Windows. Thanks to Radoslav Hodnicak for finding and reporting the problem.

For completeness, add UnixOSProcessAccessor>>primDup: hook for primitiveDup as complement to existing primDup:to:' id '802de19e-57e7-44cc-aad9-0e8295956568' date '27 September 2011' time '8:57:53.619 am' author 'dtl' ancestors ((name 'OSProcess-dtl.64' message 'OSProcess 4.4.4

Fix #isStdIn: #isStdOut: and #isStdErr: which should compare only the session ID an file handle portion of the fileID.

Add #testDupTo #testUnixFileNumber and #testRedirectStdOutTo to exercise dup2() and file stream redirection.

Note: Cog VMs using the oscog branch of OSProcessPlugin will fail testRedirectStdOutTo due to an error in the plugin.' id 'd6a501ad-ac50-444b-8b0a-692046d08873' date '10 September 2011' time '4:02:07.859 pm' author 'dtl' ancestors ((name 'OSProcess-dtl.63' message 'Additional unit test updates to permit test suite to run without UI interaction if no OSProcessPlugin is present.' id '1085a3eb-7194-41c1-ac11-0d5993eadbb8' date '11 June 2011' time '12:33:43.606 pm' author 'dtl' ancestors ((name 'OSProcess-dtl.62' message 'OSProcess 4.4.3
Fix forkHeadlessSqueak to fail cleanly on OS X to prevent unit test hang.
Update unit tests to work around OS X differences in directory naming and file protections.
Catch warnings in unit tests to permit them to run on OS X without UI interaction. Many test failures are expected on OS X due to lack of forkSqueak and XDisplayControlPlugin capability on that platform.' id '55b4ea20-a52a-40a4-b5ca-b3a7e9741c06' date '10 June 2011' time '4:20:29.871 pm' author 'dtl' ancestors ((name 'OSProcess-dtl.61' message 'OSProcess 4.4.2
Do not use #addToStartUpList:after: which was just a workaround for an ancient Squeak bug.' id '34b5098f-12a9-455e-92a3-582717b629b0' date '20 May 2011' time '7:24:39 am' author 'dtl' ancestors ((name 'OSProcess-dtl.60' message 'OSProcess 4.4.1

Improve error handling for #forkSqueak in cases where XDCP is not present or if the VM (Cog) cannot properly support the primitive call.' id '701a3257-c613-46f7-b1b8-cc743011e954' date '27 April 2011' time '9:34:51 am' author 'dtl' ancestors ((name 'OSProcess-dtl.59' message 'OSProcess 4.4.0
Eliminate deprecated methods and calls to deprecated primitives in old versions of OSPP.
Accommodate Pharo refactorings and deprecation warnings.' id 'bd5d2b4e-efbd-4091-ac0a-d0bd7af64b2c' date '28 November 2010' time '8:43:48 am' author 'dtl' ancestors ((name 'OSProcess-dtl.58' message 'OSProcess 4.3.17
Check for presence of XDisplayControlPlugin in forkSqueak. If X11 control is not present, the child VM cannot disconnect from the X server, which can result in a VM crash for the parent.' id '50622914-1741-422d-aa49-5aeeba856481' date '21 November 2010' time '12:11:53 pm' author 'dtl' ancestors ((name 'OSProcess-dtl.57' message 'OSProcess 4.3.16
Updates from Ross Boylan for Cuis support (thanks!)

Use #newProcess and #resume rather than #fork when the identity of the new process is answered. The #fork method in Cuis does not answer the process (to guard against concurrency bugs).

Fix OSProcessAccessor class>>forThisOSProcess to guard against nil ThisOSProcess.

Do not use #ifNotNilDo: (for Cuis compatibility) and do not use #ifNotNil: with a block parameter (for Squeak 3.6 compatibility).' id 'f102cd83-e29c-469c-ac65-e512ec005c31' date '3 September 2010' time '7:38:33 am' author 'dtl' ancestors ((name 'OSProcess-dtl.56' message 'OSProcess 4.3.15
Fix bugs in UnixOSProcessAccessor>>grimReaperProcess and WindowsProcess>>initialize identified by Ramon Leon (thanks!)' id 'c52cafc8-0486-40f6-bc34-81957bb5553d' date '26 August 2010' time '8:15:08 am' author 'dtl' ancestors ((name 'OSProcess-dtl.55' message 'OSProcess 4.3.14
Return to publishing full OSProcess package. Splitting OSProcess into individual packages is nice for modularity, but not good for version tracking. The individual subpackages will continue to be published separately along with the full OSProcess package.' id '14a441e1-c21d-4816-940d-3a8e1e6ab499' date '18 August 2010' time '8:54:46 am' author 'dtl' ancestors ((name 'OSProcess-dtl.54' message 'Package OSProcess has been recategorized into subpackages. OSProcess-dtl.54 will the last update to the old package structure.

OSProcess should now be loaded directly from the following packages, which will contain all future updates to OSProcess:

 OSProcess-Base
 OSProcess-Mac
 OSProcess-OS2
 OSProcess-RiscOS
 OSProcess-Win32
 OSProcess-AIO
 OSProcess-Tests
' id 'cc401561-61b7-4a26-8447-0d3429801e54' date '27 June 2010' time '12:49:41 pm' author 'dtl' ancestors ((name 'OSProcess-dtl.53' message 'OSProcess 4.3.11

Fix file locking bug on Unix with Windows file lock emulation, do not use WeakSet for file lock registry. Thanks to Sebastian Concept for finding the bug.' id '9b19a680-0a08-4527-b9a7-4fa0e306a969' date '24 September 2009' time '9:50:48 am' author 'dtl' ancestors ((name 'OSProcess-dtl.52' message 'OSProcess 4.3.10

Fix BufferedAsyncFileReadStream to always answer a Character on #next and #peek. Resolves issues on newer Squeak images.' id 'e962bc12-4ccc-4cfa-8e5e-2e52ab243836' date '6 September 2009' time '2:09:32 am' author 'dtl' ancestors ((name 'OSProcess-dtl.51' message 'OSProcess 4.3.9

Provide more consistent method naming for file lock methods in UnixOSProcessAccessor. Some old names are marked as deprecated, but have not be removed (to preserve compatibility for existing users).' id 'bd02561b-1c57-4393-ab9f-318b90caea05' date '30 August 2009' time '8:39:49 pm' author 'dtl' ancestors ((name 'OSProcess-dtl.50' message 'Change BufferedAsyncFileReadStream>>next and >>peek to answer an integer value rather than a character. This allows a BufferedAsyncFileReadStream to be used to with a ReferenceStream for reading objects from an external source.' id '8275959d-4382-4eee-9863-2234ce1ff859' date '28 May 2009' time '12:16:28 am' author 'dtl' ancestors ((name 'OSProcess-dtl.49' message 'OSProcess 4.3.8
Add #primDup:to: and #redirect:to: with related methods to support redirection of standard streams from a running Squeak image.' id 'e268084f-edc9-4e19-b510-9810daba034b' date '24 May 2009' time '12:13:33 am' author 'dtl' ancestors ((name 'OSProcess-dtl.48' message 'Remove incorrect assignments to block arguments, thanks to Danie Roux <danie@danieroux.com> for the fix.' id '41709e5a-819e-4ace-af0d-61fbe7f9ca98' date '12 April 2009' time '11:42:03 am' author 'dtl' ancestors ((name 'OSProcess-dtl.47' message 'Add UnixOSProcessAccessor>>closeUnixFileNumber:' id '718559a0-47b0-4017-aa6f-eb3a45655b18' date '2 March 2009' time '11:14:57 pm' author 'dtl' ancestors ((name 'OSProcess-dtl.46' message 'OSProcess 4.3.7
Add WindowsProcess>>waitForCommand: (by Keith Hodges)' id '5697a2eb-247b-42ce-b4c1-9995c5006bf3' date '24 November 2008' time '5:51:48 pm' author 'dtl' ancestors ((name 'OSProcess-dtl.45' message 'OSProcess 4.3.7
At system shutdown, break dependency between ThisOSProcess and the OSProcessAccessor. This is done explicitly at shutdown in order to prevent possible problems when an image is restarted on another platform type, in which case a new ThisOSProcess instance is created and the old instance could still have an unwanted dependency on an OSProcessAccessor.' id 'ce6f2dc8-9eb5-4d1e-90da-c805fd406c5c' date '7 October 2008' time '8:57:40 am' author 'dtl' ancestors ((name 'OSProcess-dtl.44' message 'Update a comment' id 'a96828a6-4e63-4f72-b8ff-e9c2d2b06c36' date '8 January 2008' time '10:55:12 pm' author 'dtl' ancestors ((name 'OSProcess-dtl.42' message 'OSProcess 4.3.6
Update ThisOSProcess>>initialize per patch from Jon Hylands to prevent possible problem moving images between unix and Windows.' id '6cb1987c-13e2-4128-903b-0469cf9c95fb' date '23 December 2007' time '9:42:07 am' author 'dtl' ancestors ((name 'OSProcess-dtl.41' message 'OSProcess 4.3.5' id 'a0a2bda0-1550-458e-b4a4-5b5423ce1e57' date '22 December 2007' time '8:54:32 am' author 'dtl' ancestors ((name 'OSProcess-dtl.40' message 'OSProcess 4.3.4
Fix a concurrency problem in BufferedAsyncFileReadStream>>upToEndOfFile. This corrects intermittent failures detected in CommandShell test suite.' id '751dd7ad-0994-4a87-986f-9223f51c682c' date '21 December 2007' time '2:14 pm' author 'dtl' ancestors ((name 'OSProcess-dtl.39' message 'OSProcess 4.3.4
Removed separate version string for AioEventHandler.' id '4172c77b-9313-4229-a075-e129e08c1fb0' date '20 December 2007' time '1:26 pm' author 'dtl' ancestors ((name 'OSProcess-dtl.38' message 'Update some default path strings for use in CommandShell.' id '2841baed-5bd1-43f3-9914-c6813d5b79c4' date '15 December 2007' time '12:08:32 pm' author 'dtl' ancestors ((name 'OSProcess-dtl.37' message 'Update reference to #listLoadedModules to work in newer Squeak versions.' id '2e370862-64d1-4ac4-a31a-9c689bfb6b57' date '28 October 2007' time '5:09:42 pm' author 'dtl' ancestors ((name 'OSProcess-dtl.36' message 'OSProcess 4.3.3
Provided backward compatibility for running on older versions of OSPP.' id 'c804a93d-c4a5-4006-b93f-3419a5909966' date '8 April 2007' time '11:31:31 am' author 'dtl' ancestors ((name 'OSProcess-dtl.35' message 'OSProcess 4.3.2
Implement BufferedAsyncFileReadStream>>upTo:' id '927780e1-4663-4da5-a2cd-ab8339ed1173' date '24 March 2007' time '8:14:25 am' author 'dtl' ancestors ((name 'OSProcess-dtl.34' message 'Fix underscores in one method.' id '95dc3c56-aac0-45b5-9236-b1715bb1ad75' date '21 March 2007' time '9:59:32 pm' author 'dtl' ancestors ((name 'OSProcess-dtl.33' message 'OSProcess 4.3.1

Changed startup processing to reinitialize current OS process when image moves from one platform to another (e.g. image from Windows moved to Unix).

Check installed OSPP version before calling pthread primitive to avoid error message when using older plugin.

Add #killCurrentChildrenAtExit and #killOnVmExit:withSignal to arrange for child processes to be terminated on VM exit even if normal shutdown processing does not occur.

Add accessor methods for Unix setsid(), getpgid(), setpgid(), getpgrp(), setpgrp() session management functions.' id '5e0f755e-02a1-4010-8fdb-a0b4c4763147' date '18 March 2007' time '11:22:33 am' author 'dtl' ancestors ((name 'OSProcess-dtl.32' message 'Add AttachableFileStream>>setBlocking and AttacheableFileStream>>setNonBlocking convenience methods. Better synchronization of buffer in BuffereAsyncFileReadStream.' id 'aea4dae9-6c10-4a34-8d6f-5f8bd7f08e4e' date '24 February 2007' time '11:07:25 am' author 'dtl' ancestors ((name 'OSProcess-dtl.31' message 'Lower the priority of event handler process for AioEventHander to prevent input buffer being overloaded whens service process cannot keep up with input stream.' id 'ff2491a0-500a-4236-8e3e-57d514e0fe24' date '11 February 2007' time '12:11:05 pm' author 'dtl' ancestors ((name 'OSProcess-dtl.30' message 'Merge fix underscores back into the last MCZ' id '4ff28319-9a4b-4f3b-81b4-519e4813902c' date '13 January 2007' time '4:51:15 pm' author 'dtl' ancestors ((name 'OSProcess-dtl.28' message 'Fix underscores.' id 'ee5dee58-6b3f-42c1-8b1d-7f67807ebe9e' date '13 January 2007' time '4:13:11 pm' author 'dtl' ancestors ((name 'OSProcess-dtl.27' message 'Add modifications to StandardFileStream to package.' id '5c86b5b9-cb9f-4273-b778-803d19a7e875' date '13 January 2007' time '3:57:18 pm' author 'dtl' ancestors ((name 'OSProcess-dtl.26' message 'OSProcess 4.3 with changes to support a fully event-driven CommandShell.' id 'b1e9c9bf-70d2-47e6-8f1a-1721d105ed08' date '13 January 2007' time '3:21:21 pm' author 'dtl' ancestors ((name 'OSProcess-dtl.25' message 'Version 4.2
Reinstate methods required for backward compabibility with older CommandShell. Add new methods to implement improved #atEnd behavior, and #upToEndOfFile for pipes.' id '1c1b0b54-9c7c-4cff-ac6b-7613e12e1572' date '16 May 2006' time '7:07:01 am' author 'dtl' ancestors ((name 'OSProcess-dtl.24' message 'Version 4.2
Add a nil check to AttachableFileStream>>atEnd.' id '722f9a00-7bc8-44c9-8091-6374a40225e1' date '15 May 2006' time '7:14:54 am' author 'dtl' ancestors ((name 'OSProcess-dtl.23' message 'Version 4.2
Fix #isAtEndOfFile: and add AttachableFileStream>>atEnd to make use of the fixed method. OSPP 4.2 has a fixed primitive that will be used if available, otherwise OSP works around the old bug.' id '74e6d067-2716-4846-a95c-47c8097c1a16' date '15 May 2006' time '6:39:27 am' author 'dtl' ancestors ((name 'OSProcess-dtl.22' message 'OSProcess 4.1
Add buffered async behavior to file streams.
Update OSPipe for event driven input.
Update file locking to fix a bug and provide better error handling.
Add fail blocks to file lock methods (versus e.g. test for nil).' id '82965e73-02f6-48ff-b1da-27e412b3a557' date '13 May 2006' time '10:09:46 am' author 'dtl' ancestors ((name 'OSProcess-dtl.20' message 'Add pthread instance variable to UnixProcess to display the identity of the pthread in which the interpreter is executing.' id 'd021fcbb-5b1d-4cb5-96c8-eca758e4d390' date '5 March 2006' time '8:35:57 pm' author 'dtl' ancestors ((name 'OSProcess-dtl.19' message 'Version 4.0.2

Add pthread accessor for UnixOSProcessAccessor (requires OSPP 4.0.2).' id '1d039c1d-3a28-4929-bd51-73c186245745' date '5 March 2006' time '12:12:54 pm' author 'dtl' ancestors ((name 'OSProcess-dtl.18' message 'Turn off Win32 file locking by default.
Add a UnixProcess example for background processing.
Clean up logic on OSFileLock>>test.' id '9e45daeb-8ed5-4aee-ae72-c621e9ec8fed' date '4 March 2006' time '2:40:18 pm' author 'dtl' ancestors ((name 'OSProcess-dtl.17' message 'Fixed #uniqueNameForSavedImage to use leading zeros in date fields.
' id 'c8961e93-6f6c-4eaf-baea-d69b9136d901' date '8 November 2005' time '11:43:28 am' author 'dtl' ancestors ((name 'OSProcess-dtl.16' message 'Changed #saveImageInBackground to use a better time stamped image name.

Added #saveImageInBackgroundNicely to do a background image save at lower priority.
' id '11b87bdb-6bdc-423c-bf7f-6856132eb76e' date '8 November 2005' time '10:00:20 am' author 'dtl' ancestors ((name 'OSProcess-dtl.11' message 'Add #nice and #primNice. Update #saveImageInBackground to save image at lower scheduling priority.' id 'a51d0d9f-f2e8-4b28-99fd-4ba5da358bea' date '8 October 2005' time '11:05:02 am' author 'dtl' ancestors ((name 'OSProcess-dtl.10' message 'Final changes for OSP 4.0' id 'a56294d8-9053-4221-9073-b5f5de9662bc' date '1 October 2005' time '12:05:02 pm' author 'dtl' ancestors ((name 'OSProcess-dtl.9' message 'Final changes for OSP 4.0' id '4da37d73-b1d1-4b74-a313-df4d40f8ad0d' date '1 October 2005' time '10:49:53 am' author 'dtl' ancestors ((name 'OSProcess-dtl.8' message 'Final changes (I hope) for OSP 4.0 release.
Fix some typos in comments.
Fix #allTestResults to work in older images.' id '549f6423-b1db-4f11-acba-b891895cb89c' date '1 October 2005' time '9:28:42 am' author 'dtl' ancestors ((name 'OSProcess-dtl.7' message 'Fix #allTestResults to work on older images with no #wordSize.
Add OSProcess debug trace methods.' id 'bfd6d2d9-5fe2-4e4d-a48d-b8fe3b260139' date '29 September 2005' time '7:40:59 am' author 'dtl' ancestors ((name 'OSProcess-dtl.6' message 'OSP Version 4.0 save prior to release.' id '63f108cb-c2df-4b7e-b0a5-dc5258fbbfb3' date '27 September 2005' time '6:00:43 am' author 'dtl' ancestors ((name 'OSProcess-dtl.5' message 'OSP version 3.3.
Supports 64 bit image and VM.' id '1feba718-248c-4d53-94fd-c464fa688f56' date '7 September 2005' time '6:27:13 am' author 'dtl' ancestors ((name 'OSProcess-dtl.4' message 'Update version strings to 1.2' id 'c89e907e-3a9f-4f96-8ccd-07d5c6a71de0' date '22 August 2005' time '6:18:08 am' author 'dtl' ancestors ((name 'OSProcess-dtl.1' message 'Version 3.2.5 supports Squeak versions 3.6 through 3.9.
Load CommandShell version 3.0.2 for additional OSProcess functions.

Refactored file lock management to provide clearer distinction between locks on file regions versus locks on entire files. Includes updates contributed by Julian Fitzell, who provided unit tests and various improvements to the file lock code.

Made various changes and additions to OSProcessAccessor and UnixOSProcessAccessor to harvest additional improvements by Julian, and bring released version of OSP into sync with what Avi is using for Seaside applications.

Added OSProcess class>>allTestResults

Added UnixProcess class>>saveImageInBackground
' id 'e1eec9c8-52d2-4d06-9c7f-22abdd35ae33' date '7 August 2005' time '7:27:04 am' author 'dtl' ancestors () stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())(name 'OSProcess-dtl.29' message 'Clean up #fileID' id 'c4143d96-1252-4338-b846-82e62bc3775e' date '13 January 2007' time '4:45:23 pm' author 'dtl' ancestors ((id '5c86b5b9-cb9f-4273-b778-803d19a7e875')) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())) stepChildren ())