From: group Newsgroups: comp.os.msdos.djgpp Subject: Coding Challenge Date: Sun, 02 Nov 1997 18:03:34 -0500 Organization: NetUnlimited, Inc. Lines: 59 Message-ID: <345D06C6.D67@fake.com> NNTP-Posting-Host: uhura-15.netunlimited.net Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Precedence: bulk A Challenge to all DJGPPers: For quite some time we have had LWP and its addition like JTLWP and PDMLWP to provide multithreading within a single executable. Although these libs provide for multithreading with in an exec. there is no facility for handling command line multitasking of more than one executable in traditional Unix style. The Challenge: Write a taskmanager for DOS/DJGPP. ( hereafter I will refer to the taskmanager as djmtask ) Specifications: 1) djmtask would server the djgpp community in general and would be GLP. djmtask would be made for the community by the community. One version of djmtask could be chosen by community consensus as the standard we could all use. 2) djmtask would act like a secondary kernal. once started from the dos command line djmtask would, start Protected mode, take over command line reading and be responsible for starting all other executables thereafter. 3) djmtask command line interface should conform to standard linux/unix properities as follows a) "program.exe &" starts process in background b) "pid.exe " lists processes and their id #s c) ALT key plus F1-F10 key switches between 10 virtual command line terminals. d) programs may call djmtask to start a completely new process. Note: this does not start a new "thread" Threads are still handled internally by the exec. using LWP or an altered version thereof. e) "kill #" ends process id # 4) General properties and reasonable limitations; djmtask may work with non-reentrant lib code in any way found most useful/stable. Disabling multiprocessing during BIOS etc. non-reentrant functions, using only co-operative yielding etc.. 5) Extras Provide for a common data area, ie. clipboard Provide for a common graphics environment by sharing *screen pointer. This is a community project as much as a challenge so working in groups could be beneficial. GOOD LUCK !