⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mailbox.mldoc

📁 这是我们参加06年全国开源软件的竞赛作品
💻 MLDOC
字号:
<!-- mldoc/mailbox.mldoc --><!DOCTYPE ML-DOC SYSTEM><COPYRIGHT OWNER="Bell Labs, Lucent Technologies" YEAR=1998><COPYRIGHT OWNER="AT&AMP;T Research" YEAR=1996><VERSION VERID="1.0" YEAR=1996 MONTH=4 DAY=21><TITLE>The Mailbox structure</TITLE><INTERFACE><HEAD>The <STRREF TOPID NOLINK/Mailbox/ structure</HEAD><SEEALSO>  <STRREF TOPID/CML/</SEEALSO><PP>The <STRREF TOPID NOLINK/Mailbox/ structure provides buffered asynchronouschannels, which we call mailboxes.<STRUCTURE STRID="Mailbox">  <SIGBODY SIGID="MAILBOX" FILE=MAILBOX-SIG>    <SPEC>      <TYPE><TYPARAM>'a<ID>mbox      <COMMENT>	<PP>	This is the type constructor for a mailbox.	A mailbox is an unbounded, buffered communication channel.    <SPEC>      <VAL>mailbox<TY>unit -> 'a mbox      <COMMENT>        <PROTOTY>          mailbox ()        </PROTOTY>        creates a new mailbox.    <SPEC>      <VAL>sameMailbox<TY>('a mbox * 'a mbox) -> bool      <COMMENT>        <PROTOTY>          sameMailbox (<ARG/mb1/, <ARG/mb2/)        </PROTOTY>        returns <CD/true/, if <ARG/mb1/ and <ARG/mb2/ are the same mailbox.    <SPEC>      <VAL>send<TY>('a mbox * 'a) -> unit      <COMMENT>        <PROTOTY>          send (<ARG/mb/, <ARG/msg/)        </PROTOTY>        sends the message <ARG/msg/ to the mailbox <ARG/mb/.	Note that unlike <VALREF STRID="CML"/CML.send/, this is a non-blocking	operation.    <SPEC>      <VAL>recv<TY>'a mbox -> 'a      <COMMENT>        <PROTOTY>          recv <ARG/mb/        </PROTOTY>        receive the next message from the mailbox <ARG/mb/.	If, the mailbox is empty, then this blocks the calling	thread until there is a message available.    <SPEC>      <VAL>recvEvt<TY>'a mbox -> 'a event      <COMMENT>        <PROTOTY>          recvEvt <ARG/mb/        </PROTOTY>        returns the event value that represents the <VALREF/recv/ operation	on <ARG/mb/.    <SPEC>      <VAL>recvPoll<TY>'a mbox -> 'a option      <COMMENT>	<PP>        This is the non-blocking version of <VALREF/recv/.	If the corresponding blocking form would block (because the mailbox is	empty), then this returns	<CONREF DOCUMENT=SML-BASIS-DOC STRID="Option"/NONE/, otherwise it returns	<CONREF DOCUMENT=SML-BASIS-DOC STRID="Option"/SOME/ of the received	message.</STRUCTURE><PP>Note that mailbox buffers are unbounded, which means that there is no flowcontrol to prevent a producer from greatly outstriping a consumer, and thusexhausting memory.In situations where there is no natural limit to the rate of<VALREF STRID="Mailbox"/send/ operations, it is recommended that thesynchronous channels from the <STRREF TOPID/CML/ structurebe used instead.</INTERFACE>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -