							-*-text-*-
PTL2 --- Portable Thread Library v2.

PTL は，UNIXプロセス中に複数のスレッドを生成し，制御するためのライブラリ
(スレッドライブラリ)です．


特徴
====

	* ほとんどの POSIX 1003.1c (Pthreads) の API を実装しています．
	* BSD UNIX ならば，CPUを選ばずに動作します．
	* SYSV UNIX では，gcc があれば i386, SPARC, m68k, mips, alpha で動
	  作します．(たぶん)．
	* 簡単インストール
	* 無料
	* 速い (たぶん)
	* プリエンプションを備えています．
	* ネットワークI/O, 端末I/O, パイプ, SYSVメッセージキュー, SYSVセ
	  マフォでブロックする場合，呼び出しスレッドだけがブロックし，他
	  のスレッドは動作を継続できます．
	* プロセス内に寄生するデバッガ PDB を内蔵しています．


インストール
============

	インストールに関しては, "INSTALL" をご覧下さい. 

	なお，PTL が動作することが確認された UNIX の一覧は，PTL の公式 
	Web page にあります．


ドキュメント
===========

	PTL の公式 Web page は以下の URL にあります．

		http://www.media.osaka-cu.ac.jp/~k-abe/PTL/

	この web page には，以下のような情報が含まれています．

		* PTL が動作する UNIX
		* PDB (デバッガ)の使い方
		* PTL 独自の API の仕様
		* etc.

	PostScript と Info 形式のマニュアルが含まれていますが，
	あまり更新されていません．

		./doc/manual.ps		PostScript 形式
		./doc/PTL.info		Info 形式


簡単な使い方
============

	pthread の API を使ったプログラム foo.c は，以下のようにコンパイ
	ルしてください．

		cc foo.c -I/usr/local/PTL/include -L/usr/local/PTL/lib \
		-lPTL

	gcc が使える場合，ptlgcc コマンド(gcc のフロントエンド)が利用で
	きるはずです．

		ptlgcc foo.c

	のように使います．


POSIX 1003.1c との非互換性及び制限事項
======================================

	* コンテンションスコープ PTHREAD_SCOPE_SYSTEM は実装されていない. 
	* pthread_mutex_lock() が Cancellation Point になっている.
	* PTHREAD_STACK_MIN が定義されていない. (アーキテクチャに依存するので)
	* PTHREAD_DESTRUCTOR_ITERATIONS が定義されていない．
	* _POSIX_THREAD_THREADS_MAX が定義されていない. (メモリがある限
	  りスレッドを作れるので)
	* _POSIX_THREAD_KEYS_MAX が定義されていない. (メモリがある限りキー
	  を作れるので)
	* _POSIX_THREAD_PROCESS_SHARED をサポートしない．
	* _POSIX_THREAD_ATTR_STACKADDR はサポートしない．このため，
	  pthread_attr_setstackaddr(), pthread_attr_getstackaddr() は存
	  在しない．
	* _POSIX_THREAD_PRIO_PROTECT はサポートしない．このため，
	  PTHREAD_PRIO_PROTECT (Priority Ceiling) は無い．
	* _POSIX_THREAD_SAFE_FUNCTIONS はサポートしない．このため，
	  getlogin_r, readdir_r, getgrgid_r, getgrnam_r, getpwuid_r,
	  getpwnam_r は無い．

	  ただし, strtok_r, flockfile, ftrylockfile, funlockfile,
	  getc_unlocked, getchar_unlocked, putchar_unlocked,
	  putc_unlocked, ttyname_r はある.

	* SCHED_RR ではきちんとタイムスライスをチェックしているわけでは
	  ない.
	* シグナルハンドラへの引数が違う．
	  (POSIX では (int, siginfo_t*, void*)
	* sigaction() で, SA_NOCLDSTOP が働かない. 


フィードバック
==============

	障害や, バグ報告などは，以下のアドレスにメールして下さい．

	  <k-abe@media.osaka-cu.ac.jp>

	様々な提案, 移植報告等も歓迎します.


メーリングリスト
================

	PTL と pthread プログラミングに関する話題を話し合うためのメーリ
	ングリストを用意しています.  パッチや新しいリリースの情報はここ
	に流れます. 興味のある方は, 以下のメールアドレスにメールを送って
	ください.  ML のガイドが自動的に返送されます. (メールの本文は無
	視されます).

	  <pthread-request@media.osaka-cu.ac.jp>


--------------------------------------------------------------------
Kota Abe / Media Center, Osaka City University
E-mail <k-abe@media.osaka-cu.ac.jp>
