[net.lang.c] C++ and multitasking

reddy@uiucdcs.CS.UIUC.EDU (04/09/86)

I recall that the earlier Class-C had multitasking (or some simulation of
it).  Has that been thrown out in C++?  Or, is there some library that
provides it?

keith@cecil.UUCP (keith gorlen) (04/14/86)

Release 1 of the C++ Translator comes with a tasking package (task.h),
and I've also implemented one of my own as part of an Object-Oriented
Program Support (OOPS) class library for C++.  The task.h package is
oriented toward applications such as simulation, and the OOPS package is
better suited to external event processing.  Both contain a small amount
of assembler code to handle coroutine creation and coroutine calls.

Multiprocessing with coroutines does not require any language features
peculiar to C++; it requires only run-time support and could be
implemented in plain old C.

-- 
---
	Keith Gorlen
	Computer Systems Laboratory
	Division of Computer Research and Technology
	National Institutes of Health
	Bethesda, MD 20892
	phone:	(301) 496-5363
	uucp:	{decvax!}seismo!elsie!cecil!keith

brooks@lll-crg.ARpA (Eugene D. Brooks III) (04/14/86)

In article <27600047@uiucdcs> reddy@uiucdcs.CS.UIUC.EDU writes:
>
>I recall that the earlier Class-C had multitasking (or some simulation of
>it).  Has that been thrown out in C++?  Or, is there some library that
>provides it?

I an not aware of the situation for C++, but there is a stand alone
Multitasking package avaiable for C (for free).  It runs under Unix,
is compatible with dbx, and can be set to interleave the execution of
the arbitrary number of tasks every instruction if so desired.  It
currently runs on Vaxes and I believe that one group has ported it to
Sequent's B8K.  The package is written in C and is constructed to be
portable.  There are facilities that allow one to obtain the concurrency
available as a function of clock cycle, assuming one clock per instruction.