本文整理汇总了C++中resume函数的典型用法代码示例。如果您正苦于以下问题:C++ resume函数的具体用法?C++ resume怎么用?C++ resume使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了resume函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: switch
//.........这里部分代码省略.........
status_t ret = isPlaying(&state);
reply->writeInt32(state);
reply->writeInt32(ret);
return NO_ERROR;
} break;
case PAUSE: {
CHECK_INTERFACE(IMediaPlayer, data, reply);
reply->writeInt32(pause());
return NO_ERROR;
} break;
case SEEK_TO: {
CHECK_INTERFACE(IMediaPlayer, data, reply);
reply->writeInt32(seekTo(data.readInt32()));
return NO_ERROR;
} break;
case GET_CURRENT_POSITION: {
CHECK_INTERFACE(IMediaPlayer, data, reply);
int msec;
status_t ret = getCurrentPosition(&msec);
reply->writeInt32(msec);
reply->writeInt32(ret);
return NO_ERROR;
} break;
case GET_DURATION: {
CHECK_INTERFACE(IMediaPlayer, data, reply);
int msec;
status_t ret = getDuration(&msec);
reply->writeInt32(msec);
reply->writeInt32(ret);
return NO_ERROR;
} break;
case RESET: {
CHECK_INTERFACE(IMediaPlayer, data, reply);
reply->writeInt32(reset());
return NO_ERROR;
} break;
case SET_AUDIO_STREAM_TYPE: {
CHECK_INTERFACE(IMediaPlayer, data, reply);
reply->writeInt32(setAudioStreamType(data.readInt32()));
return NO_ERROR;
} break;
case SET_LOOPING: {
CHECK_INTERFACE(IMediaPlayer, data, reply);
reply->writeInt32(setLooping(data.readInt32()));
return NO_ERROR;
} break;
case SET_VOLUME: {
CHECK_INTERFACE(IMediaPlayer, data, reply);
reply->writeInt32(setVolume(data.readFloat(), data.readFloat()));
return NO_ERROR;
} break;
case INVOKE: {
CHECK_INTERFACE(IMediaPlayer, data, reply);
invoke(data, reply);
return NO_ERROR;
} break;
case SET_METADATA_FILTER: {
CHECK_INTERFACE(IMediaPlayer, data, reply);
reply->writeInt32(setMetadataFilter(data));
return NO_ERROR;
} break;
case SUSPEND: {
CHECK_INTERFACE(IMediaPlayer, data, reply);
reply->writeInt32(suspend());
return NO_ERROR;
} break;
case RESUME: {
CHECK_INTERFACE(IMediaPlayer, data, reply);
reply->writeInt32(resume());
return NO_ERROR;
} break;
case GET_METADATA: {
CHECK_INTERFACE(IMediaPlayer, data, reply);
const status_t retcode = getMetadata(data.readInt32(), data.readInt32(), reply);
reply->setDataPosition(0);
reply->writeInt32(retcode);
reply->setDataPosition(0);
return NO_ERROR;
} break;
case SET_AUX_EFFECT_SEND_LEVEL: {
CHECK_INTERFACE(IMediaPlayer, data, reply);
reply->writeInt32(setAuxEffectSendLevel(data.readFloat()));
return NO_ERROR;
} break;
case ATTACH_AUX_EFFECT: {
CHECK_INTERFACE(IMediaPlayer, data, reply);
reply->writeInt32(attachAuxEffect(data.readInt32()));
return NO_ERROR;
} break;
#ifdef OMAP_ENHANCEMENT
case REQUEST_CLONE_MODE: {
CHECK_INTERFACE(IMediaPlayer, data, reply);
reply->writeInt32(requestVideoCloneMode(data.readInt32()));
return NO_ERROR;
} break;
#endif
default:
return BBinder::onTransact(code, data, reply, flags);
}
}
开发者ID:DongheonKim,项目名称:android_frameworks_base,代码行数:101,代码来源:IMediaPlayer.cpp
示例2: resume
void PauseLayer::keyBackClicked() {
resume();
}
开发者ID:qsz13,项目名称:Bounce,代码行数:3,代码来源:PauseLayer.cpp
示例3: resume
void Node::resumeSchedulerAndActions()
{
resume();
}
开发者ID:khanhbui,项目名称:ThreeDots,代码行数:4,代码来源:CCNode.cpp
示例4: resume
void MenuWidget::unpause()
{
this->hide();
this->glView->setFocus();
emit resume();
}
开发者ID:JordanBlocher,项目名称:qt-opengl,代码行数:6,代码来源:MenuWidget.cpp
示例5: recordAudio
//.........这里部分代码省略.........
//asm("INT OFF"); // to prevent recordings with bad blocks
}
// only open file to record if HOME was not pressed and only proceed if file opens correctly
if (ret != 1 && ((handle = tbOpen((LPSTR)filepath,O_CREAT|O_RDWR)) != -1)) {
setLED(LED_RED,TRUE);
playBip();
turnAmpOff();
Snd_SACM_RecFAT(handle, C_CODEC_AUDIO1800, BIT_RATE);
low_voltage = 0;
do {
end = getRTCinSeconds();
if (0==(end%2) && (prev != end)) { // blink LED every three seconds
prev = end;
setLED(LED_RED,FALSE);
wait (100);
setLED(LED_RED,TRUE);
while((v = getCurVoltageSample()) == 0xffff);
if(vCur_1 < V_MIN_SDWRITE_VOLTAGE) {
low_voltage = 1;
}
}
key = keyCheck(0);
if (key == KEY_PLAY) { // pause TODO: this key press to pause shouldn't be hard coded
pause();
setLED(LED_RED,FALSE);
// insertSound(&pkgSystem.files[REC_PAUSED_FILE_IDX],NULL,FALSE); ---need to play this from memory
do
key = keyCheck(0);
// TODO: NEED CODE HERE TO SAFELY SAVE FILE WHEN PAUSED FOR EXTENDED PERIOD OF TIME (maybe 60 min?)
// checkInactivity(key); --- this would cause recording to be lost in just 30-300 sec inactivity
while (!key);
if (key == KEY_PLAY) {
setLED(LED_RED,TRUE);
resume();
}
}
} while ((!key || (key == KEY_PLAY)) && (low_voltage == 0)); // TODO: this key press to stop shouldn't be hard coded
// while ((end - start) < 3) { // must be at least 2.0 second recording
// end = getRTCinSeconds();
// }
SACM_Stop(); //Snd_Stop(); // no need to call stop() and flush the log
setLED(LED_RED,FALSE);
turnAmpOn();
playDing();
//lseek(handle, 6, SEEK_SET ); //Seek to the start of the file input
//write(handle,(LPSTR)header<<1,6);
// write meta data to end of file
close(handle); // rhm: I think its already closed, I can't write to it here
systemCounts.recordingNumber++; // bump global recording number
saveSystemCounts();
handle = tbOpen((LPSTR)filepath,O_RDWR);
metadata_start = lseek(handle, 0L, SEEK_END); // offset to start of metadata
metadata_numfields = 0L; // init num fields
wrk1 = METADATA_VERSION;
writeLE32(handle, wrk1, CURRENT_POS); //meta data version = 1
writeLE32(handle, metadata_numfields, CURRENT_POS); // 4 byte for num fields
strcpy(unique_id, (char *)TB_SERIAL_NUMBER_ADDR + CONST_TB_SERIAL_PREFIX_LEN); // skip serial number prefix
strcat(unique_id, "_");
strcat(unique_id, digits);
开发者ID:billev,项目名称:literacybridge,代码行数:67,代码来源:audio.c
示例6: resume
// Decodes the received IR message
// Returns 0 if no data ready, 1 if data ready.
// Results of decoding are stored in results
int IRrecv::decode(decode_results *results) {
results->rawbuf = irparams.rawbuf;
results->rawlen = irparams.rawlen;
if (irparams.rcvstate != STATE_STOP) {
return ERR;
}
#if TINY_PROTO_NEC
#ifdef DEBUG
Serial.println("Attempting NEC decode");
#endif
if (decodeNEC(results)) {
return DECODED;
}
#endif
#if TINY_PROTO_SONY
#ifdef DEBUG
Serial.println("Attempting Sony decode");
#endif
if (decodeSony(results)) {
return DECODED;
}
#endif
#if TINY_PROTO_SANYO
#ifdef DEBUG
Serial.println("Attempting Sanyo decode");
#endif
if (decodeSanyo(results)) {
return DECODED;
}
#endif
#if TINY_PROTO_MITSUBISHI
#ifdef DEBUG
Serial.println("Attempting Mitsubishi decode");
#endif
if (decodeMitsubishi(results)) {
return DECODED;
}
#endif
#if TINY_PROTO_RC5
#ifdef DEBUG
Serial.println("Attempting RC5 decode");
#endif
if (decodeRC5(results)) {
return DECODED;
}
#endif
#if TINY_PROTO_RC6
#ifdef DEBUG
Serial.println("Attempting RC6 decode");
#endif
if (decodeRC6(results)) {
return DECODED;
}
#endif
#if TINY_PROTO_PANASONIC
#ifdef DEBUG
Serial.println("Attempting Panasonic decode");
#endif
if (decodePanasonic(results)) {
return DECODED;
}
#endif
#if TINY_PROTO_LG
#ifdef DEBUG
Serial.println("Attempting LG decode");
#endif
if (decodeLG(results)) {
return DECODED;
}
#endif
#if TINY_PROTO_JVC
#ifdef DEBUG
Serial.println("Attempting JVC decode");
#endif
if (decodeJVC(results)) {
return DECODED;
}
#endif
#if TINY_PROTO_SAMSUNG
#ifdef DEBUG
Serial.println("Attempting SAMSUNG decode");
#endif
if (decodeSAMSUNG(results)) {
return DECODED;
}
#endif
#if TINY_PROTO_HASH
// decodeHash returns a hash on any input.
// Thus, it needs to be last in the list.
// If you add any decodes, add them before this.
if (decodeHash(results)) {
return DECODED;
}
#endif
// Throw away and start over
resume();
return ERR;
//.........这里部分代码省略.........
开发者ID:nrw505,项目名称:Arduino-TinyRemote,代码行数:101,代码来源:TinyRemote.cpp
示例7: resume
void eFilePushThread::start(int fd_source, int fd_dest)
{
m_raw_source.setfd(fd_source);
m_fd_dest = fd_dest;
resume();
}
开发者ID:FFTEAM,项目名称:enigma2-5,代码行数:6,代码来源:filepush.cpp
示例8: shell
//.........这里部分代码省略.........
diff = FALSE;
while (*src != NULLCH) {
if (*cmp != *src) {
diff = TRUE;
break;
}
src++;
cmp++;
}
if (diff || (*cmp != NULLCH)) {
continue;
} else {
break;
}
}
/* Handle command not found */
if (j >= ncmd) {
fprintf(dev, "command %s not found\n", tokbuf);
continue;
}
/* Handle built-in command */
if (cmdtab[j].cbuiltin) { /* No background or redirect. */
if (inname != NULL || outname != NULL || backgnd){
fprintf(dev, SHELL_BGERRMSG);
continue;
} else {
/* Set up arg vector for call */
for (i=0; i<ntok; i++) {
args[i] = &tokbuf[tok[i]];
}
/* Call builtin shell function */
if ((*cmdtab[j].cfunc)(ntok, args)
== SHELL_EXIT) {
break;
}
}
continue;
}
/* Open files and redirect I/O if specified */
if (inname != NULL) {
stdinput = open(NAMESPACE,inname,"ro");
if (stdinput == SYSERR) {
fprintf(dev, SHELL_INERRMSG, inname);
continue;
}
}
if (outname != NULL) {
stdoutput = open(NAMESPACE,outname,"w");
if (stdoutput == SYSERR) {
fprintf(dev, SHELL_OUTERRMSG, outname);
continue;
} else {
control(stdoutput, F_CTL_TRUNC, 0, 0);
}
}
/* Spawn child thread for non-built-in commands */
child = create(cmdtab[j].cfunc,
SHELL_CMDSTK, SHELL_CMDPRIO,
cmdtab[j].cname, 2, ntok, &tmparg);
/* If creation or argument copy fails, report error */
if ((child == SYSERR) ||
(addargs(child, ntok, tok, tlen, tokbuf, &tmparg)
== SYSERR) ) {
fprintf(dev, SHELL_CREATMSG);
continue;
}
/* Set stdinput and stdoutput in child to redirect I/O */
proctab[child].prdesc[0] = stdinput;
proctab[child].prdesc[1] = stdoutput;
msg = recvclr();
resume(child);
if (! backgnd) {
msg = receive();
while (msg != child) {
msg = receive();
}
}
}
/* Terminate the shell process by returning from the top level */
fprintf(dev,SHELL_EXITMSG);
return OK;
}
开发者ID:rahulpasunuri,项目名称:Xinu-OS,代码行数:101,代码来源:shell.c
示例9: movieElement
//.........这里部分代码省略.........
}
XMLUtils::SetStringArray(movie, "genre", m_genre);
XMLUtils::SetStringArray(movie, "country", m_country);
if (!m_strSet.empty())
{
TiXmlElement set("set");
XMLUtils::SetString(&set, "name", m_strSet);
if (!m_strSetOverview.empty())
XMLUtils::SetString(&set, "overview", m_strSetOverview);
movie->InsertEndChild(set);
}
XMLUtils::SetStringArray(movie, "tag", m_tags);
XMLUtils::SetStringArray(movie, "credits", m_writingCredits);
XMLUtils::SetStringArray(movie, "director", m_director);
if (HasPremiered())
XMLUtils::SetDate(movie, "premiered", m_premiered);
if (HasYear())
XMLUtils::SetInt(movie, "year", GetYear());
XMLUtils::SetString(movie, "status", m_strStatus);
XMLUtils::SetString(movie, "code", m_strProductionCode);
XMLUtils::SetDate(movie, "aired", m_firstAired);
XMLUtils::SetStringArray(movie, "studio", m_studio);
XMLUtils::SetString(movie, "trailer", m_strTrailer);
if (m_streamDetails.HasItems())
{
// it goes fileinfo/streamdetails/[video|audio|subtitle]
TiXmlElement fileinfo("fileinfo");
TiXmlElement streamdetails("streamdetails");
for (int iStream=1; iStream<=m_streamDetails.GetVideoStreamCount(); iStream++)
{
TiXmlElement stream("video");
XMLUtils::SetString(&stream, "codec", m_streamDetails.GetVideoCodec(iStream));
XMLUtils::SetFloat(&stream, "aspect", m_streamDetails.GetVideoAspect(iStream));
XMLUtils::SetInt(&stream, "width", m_streamDetails.GetVideoWidth(iStream));
XMLUtils::SetInt(&stream, "height", m_streamDetails.GetVideoHeight(iStream));
XMLUtils::SetInt(&stream, "durationinseconds", m_streamDetails.GetVideoDuration(iStream));
XMLUtils::SetString(&stream, "stereomode", m_streamDetails.GetStereoMode(iStream));
streamdetails.InsertEndChild(stream);
}
for (int iStream=1; iStream<=m_streamDetails.GetAudioStreamCount(); iStream++)
{
TiXmlElement stream("audio");
XMLUtils::SetString(&stream, "codec", m_streamDetails.GetAudioCodec(iStream));
XMLUtils::SetString(&stream, "language", m_streamDetails.GetAudioLanguage(iStream));
XMLUtils::SetInt(&stream, "channels", m_streamDetails.GetAudioChannels(iStream));
streamdetails.InsertEndChild(stream);
}
for (int iStream=1; iStream<=m_streamDetails.GetSubtitleStreamCount(); iStream++)
{
TiXmlElement stream("subtitle");
XMLUtils::SetString(&stream, "language", m_streamDetails.GetSubtitleLanguage(iStream));
streamdetails.InsertEndChild(stream);
}
fileinfo.InsertEndChild(streamdetails);
movie->InsertEndChild(fileinfo);
} /* if has stream details */
// cast
for (iCast it = m_cast.begin(); it != m_cast.end(); ++it)
{
// add a <actor> tag
TiXmlElement cast("actor");
TiXmlNode *node = movie->InsertEndChild(cast);
XMLUtils::SetString(node, "name", it->strName);
XMLUtils::SetString(node, "role", it->strRole);
XMLUtils::SetInt(node, "order", it->order);
XMLUtils::SetString(node, "thumb", it->thumbUrl.GetFirstThumb().m_url);
}
XMLUtils::SetStringArray(movie, "artist", m_artist);
XMLUtils::SetStringArray(movie, "showlink", m_showLink);
for (const auto& namedSeason : m_namedSeasons)
{
TiXmlElement season("namedseason");
season.SetAttribute("number", namedSeason.first);
season.SetValue(namedSeason.second);
movie->InsertEndChild(season);
}
TiXmlElement resume("resume");
XMLUtils::SetFloat(&resume, "position", (float)m_resumePoint.timeInSeconds);
XMLUtils::SetFloat(&resume, "total", (float)m_resumePoint.totalTimeInSeconds);
if (!m_resumePoint.playerState.empty())
{
TiXmlElement playerstate("playerstate");
CXBMCTinyXML doc;
doc.Parse(m_resumePoint.playerState);
playerstate.InsertEndChild(*doc.RootElement());
resume.InsertEndChild(playerstate);
}
movie->InsertEndChild(resume);
XMLUtils::SetDateTime(movie, "dateadded", m_dateAdded);
if (additionalNode)
movie->InsertEndChild(*additionalNode);
return true;
}
开发者ID:jrcarpenter,项目名称:xbmc,代码行数:101,代码来源:VideoInfoTag.cpp
示例10: activate_purger
static void activate_purger(rtems_task_priority prio)
{
set_task_prio(task_id_purger, prio);
resume(task_id_purger);
}
开发者ID:FullMentalPanic,项目名称:RTEMS_NEW_TOOL_CHAIN,代码行数:5,代码来源:init.c
示例11: create_waiter
static void create_waiter(void)
{
resume(task_id_waiter);
set_task_prio(task_id_waiter, PRIORITY_IDLE);
}
开发者ID:FullMentalPanic,项目名称:RTEMS_NEW_TOOL_CHAIN,代码行数:5,代码来源:init.c
示例12: nulluser
/*------------------------------------------------------------------------
* nulluser -- initialize system and become the null process (id==0)
*------------------------------------------------------------------------
*/
nulluser() /* babysit CPU when no one home */
{
int userpid;
#ifdef X__COM32__
init_com32();
#endif
initevec();
#ifdef X__COM32__
puts_com32("initevec() done\n");
#endif
sysinit();
#ifdef X__COM32__
puts_com32("sysinit() done\n");
#endif
/* associate CONSOLE with a tty */
open(CONSOLE, KBMON, 0);
/* open(CONSOLE, SERIAL0); */
sprintf(vers, "Xinu Version %s", VERSION);
kprintf("\n\n%s\n", vers);
if (reboot++ < 1)
kprintf("\n");
else
kprintf(" (reboot %d)\n", reboot);
kprintf("%d bytes real mem\n",
(unsigned long) maxaddr+1);
#ifdef DETAIL
kprintf(" %d", (unsigned long) 0);
kprintf(" to %d\n", (unsigned long) (maxaddr) );
#endif
kprintf("%d bytes Xinu code\n",
(unsigned long) ((unsigned long) &end - (unsigned long) start));
#ifdef DETAIL
kprintf(" %d", (unsigned long) start);
kprintf(" to %d\n", (unsigned long) &end );
#endif
#ifdef DETAIL
kprintf("%d bytes user stack/heap space\n",
(unsigned long) ((unsigned long) maxaddr - (unsigned long) &end));
kprintf(" %d", (unsigned long) &end);
kprintf(" to %d\n", (unsigned long) maxaddr);
#endif
kprintf("clock %sabled\n", clkruns == 1?"en":"dis");
/* !!! enable();*/ /* enable interrupts */
kprintf("interrupts enabled\n");
/* create a process to execute the user's main program */
userpid = create(main,INITSTK,INITPRIO,INITNAME,INITARGS);
/* start the network */
resume(create(netstart,NETSTK,NETPRI,NETNAM,NETARGC,userpid));
while (TRUE)
/* empty */;
}
开发者ID:m3y54m,项目名称:32bitmicro,代码行数:70,代码来源:initialize.c
示例13: resume
ThreadCollector::ThreadCollector()
{
resume();
}
开发者ID:kaseya,项目名称:tightvnc2,代码行数:4,代码来源:ThreadCollector.cpp
示例14: pinMode
void IRrecvBase::enableIRIn(void) {
pinMode(irparams.recvpin, INPUT);
resume();
}
开发者ID:KeyJay86,项目名称:woerdclock-software,代码行数:4,代码来源:IRLib.cpp
示例15: main
int main(void)
{
int8_t idle_task_id;
// set up the ports....
hw_init();
// allow input to settle while clock switch in progress
TRISBbits.TRISB15 = 1; // input port
CNPUBbits.CNPUB15 = 1; // with a pull-up
// set up the PLL for 70Mips
// FOSC = 10mHz
// FPLLI = 5Mhz
// FSYS = 280Mhz
// FOSC = 140Mhz
PLLFBD = I_PLLDIV; // PLL divider
CLKDIVbits.PLLPRE = I_PLLPRE; // Prescaler divide by 2
CLKDIVbits.PLLPOST = I_PLLPOST; // Postscale divide by 2
// Initiate Clock Switch to Primary Oscillator with PLL (NOSC=0b011)
if(OSCCONbits.COSC != 0b011)
{
__builtin_write_OSCCONH(0x03);
__builtin_write_OSCCONL(OSCCON | 0x01);
// Wait for Clock switch to occur
while (OSCCONbits.COSC!= 0b011);
}
// Wait for PLL to lock
while (OSCCONbits.LOCK!= 1);
// unlock the PPS functions
__builtin_write_OSCCONL(OSCCON & 0xbf);
// map pins
map_rpo(RP42R, rpo_c1tx);
map_rpi(rpi_rpi44, rpi_c1rx);
TRISAbits.TRISA0 = 1;
TRISAbits.TRISA1 = 1;
TRISAbits.TRISA7 = 1;
TRISAbits.TRISA10 = 1;
TRISBbits.TRISB0 = 1;
TRISBbits.TRISB1 = 1;
TRISBbits.TRISB15 = 1;
TRISCbits.TRISC0 = 1;
TRISCbits.TRISC1 = 1;
TRISCbits.TRISC2 = 1;
ee_params.init_mode = PORTBbits.RB15 == 0;
// set up uart data early
init_deque(&uart_config.rx_queue, RX_BUFFER_LENGTH, rx_queue, NUM_RX_BUFFERS);
init_deque(&uart_config.tx_queue, TX_BUFFER_LENGTH, tx_queue, NUM_TX_BUFFERS);
idle_task_id = scheduler_init(tasks, NUM_TASKS, idle_task, idle_stack, numelements(idle_stack));
resume(idle_task_id);
// create the canbus task
can_init(HARDWARE_REVISION, SOFTWARE_REVISION,
can_tx_buffer, CAN_TX_LENGTH,
can_rx_buffer, CAN_RX_LENGTH,
can_tx_stack, numelements(can_tx_stack), 0,
can_rx_stack, numelements(can_rx_stack), 0,
publisher_stack, numelements(publisher_stack), 0);
subscribe(&listener);
// initialize the eeprom as we need our settings first
eeprom_init(&ee_params);
resume(create_task("KEYS", keys_stack, numelements(keys_stack), keys_worker, 0, NORMAL_PRIORITY));
// run with an idle task
run(idle_task_id);
return 0;
}
开发者ID:kotuku-aero,项目名称:diy-efis,代码行数:78,代码来源:diy_efis.c
示例16: future_get
syscall future_get(future *f, int* value)
{
// kprintf("Inside Future_get\n");
// kprintf("Flag%d",f->flag);
if(f->flag == FUTURE_EXCLUSIVE)
{
f->pid = getpid();
if(f->state == FUTURE_EMPTY)
{
suspend(f->pid);
//return SYSERR;
}
//kprintf("relesed");
*value = f->value;
f->state = FUTURE_EMPTY; //change the state back..
}
else if (f->flag == FUTURE_SHARED)
{
if(f->state == FUTURE_EMPTY) // the future is not set yet..
{
//enqueue this process..
enqueueFuture(&(f->get_queue), getpid());
//TODO:wait the process..
suspend(getpid());
}
*value = f->value;
}
else if (f->flag == FUTURE_QUEUE)
{
//TODO: Incomplete functionality..
if(f->set_queue.size == 0)
{
//no process waiting to set the future..
//allocate this process to the get queue and wait..
enqueueFuture(&(f->get_queue), getpid());
//wait the current process..
suspend(getpid());
}
else
{
//dequeue a process from the set queue..
enqueueFuture(&(f->get_queue), getpid());
resume(dequeueFuture(&(f->set_queue)));
while(f->state != FUTURE_VALID)
{
resched();
}
}
*value = f->value;
f->state = FUTURE_EMPTY;
}
else
{
kprintf("Unsupported future state!!!");
return SYSERR;
}
return OK;
}
开发者ID:rahulpasunuri,项目名称:Xinu-OS,代码行数:61,代码来源:future_get.c
示例17: resume
TEventQueue::TEventQueue()
{
#ifdef __MSDOS__
resume();
#endif
}
开发者ID:hackshields,项目名称:antivirus,代码行数:6,代码来源:TEVENT.cpp
示例18: resume
// Decodes the received IR message
// Returns 0 if no data ready, 1 if data ready.
// Results of decoding are stored in results
int IRrecv::decode(decode_results *results) {
results->rawbuf = irparams.rawbuf;
results->rawlen = irparams.rawlen;
if (irparams.rcvstate != STATE_STOP) {
return ERR;
}
#ifdef DEBUG
Serial.println("Attempting NEC decode");
#endif
if (decodeNEC(results)) {
return DECODED;
}
#ifdef DEBUG
Serial.println("Attempting Sony decode");
#endif
if (decodeSony(results)) {
return DECODED;
}
#ifdef DEBUG
Serial.println("Attempting Sanyo decode");
#endif
if (decodeSanyo(results)) {
return DECODED;
}
#ifdef DEBUG
Serial.println("Attempting Mitsubishi decode");
#endif
if (decodeMitsubishi(results)) {
return DECODED;
}
#ifdef DEBUG
Serial.println("Attempting RC5 decode");
#endif
if (decodeRC5(results)) {
return DECODED;
}
#ifdef DEBUG
Serial.println("Attempting RC6 decode");
#endif
if (decodeRC6(results)) {
return DECODED;
}
#ifdef DEBUG
Serial.println("Attempting Panasonic decode");
#endif
if (decodePanasonic(results)) {
return DECODED;
}
#ifdef DEBUG
Serial.println("Attempting JVC decode");
#endif
if (decodeJVC(results)) {
return DECODED;
}
// decodeHash returns a hash on any input.
// Thus, it needs to be last in the list.
// If you add any decodes, add them before this.
if (decodeHash(results)) {
return DECODED;
}
// Throw away and start over
resume();
return ERR;
}
开发者ID:xenomachina,项目名称:Arduino-IRremote,代码行数:67,代码来源:IRremote.cpp
示例19: main
//.........这里部分代码省略.........
if (opt == -1) {
break;
}
switch(opt) {
case 0:
switch(option_index) {
case 0: //printf("pthread libdir is %s\n", optarg);
libdir = optarg;
break;
default:
assert(0);
}
break;
case 'm':
//printf("save_mmap is on");
save_mmap = 1;
break;
case 'f':
//printf("follow_splits is on");
follow_splits = 1;
break;
case 'p':
//printf("attach_pin is on");
attach_pin = 1;
break;
case 'h':
print_help(argv[0]);
exit(EXIT_SUCCESS);
break;
default:
fprintf(stderr, "Unrecognized option\n");
print_help(argv[0]);
exit(EXIT_FAILURE);
break;
}
}
base = optind;
/* David D. Replaced with proper getopts */
/*
for (base = 2; base < argc; base++) {
if (!strcmp(argv[base], "-p")) {
attach_pin = 1;
} else if (!strcmp(argv[base], "-f")) {
follow_splits = 1;
} else if (!strcmp(argv[base], "-m")) {
save_mmap = 1;
} else if (argc > base+1 && !strncmp(argv[base], "--pthread", 8)) {
libdir = argv[base+1];
base++;
} else {
break; // unrecognized arg
}
}
*/
/*
do {
int i;
for (i = base; i < argc; i++) {
printf("Got non-opt arg: %s\n", argv[i]);
}
} while (0);
*/
if (argc-base != 1) {
fprintf(stderr, "Invalid non-arg arguments!\n");
print_help(argv[0]);
exit(EXIT_FAILURE);
}
if (attach_pin && save_mmap) {
fprintf(stderr, "Attaching pin (-p) and saving mmaps (-m) shouldn't both be enabled!\n");
exit(EXIT_FAILURE);
}
if (libdir) {
strcpy (ldpath, libdir);
strcat (ldpath, "/ld-linux.so.2");
libdir = ldpath;
}
fd = open ("/dev/spec0", O_RDWR);
if (fd < 0) {
perror ("open /dev/spec0");
exit(EXIT_FAILURE);
}
pid = getpid();
printf("libdir: %s, ldpath: %s\n", libdir, ldpath);
printf("resume pid %d follow %d\n", pid, follow_splits);
rc = resume (fd, attach_pin, follow_splits, save_mmap, argv[base], libdir);
if (rc < 0) {
perror ("resume");
return -1;
}
fprintf (stderr, "resume should not return\n");
return -1;
}
开发者ID:aywq2008,项目名称:omniplay,代码行数:101,代码来源:resume.c
示例20: if
///----------------------------------------------------------------------------
void coroutine_stackful_actor::handle_recv(detail::pack& pk)
{
if (check(pk.recver_, ctxid_, timestamp_))
{
bool is_response = false;
if (aid_t* aid = boost::get<aid_t>(&pk.tag_))
{
mb_.push(*aid, pk.msg_);
}
else if (detail::request_t* req = boost::get<detail::request_t>(&pk.tag_))
{
mb_.push(*req, pk.msg_);
}
else if (detail::link_t* link = boost::get<detail::link_t>(&pk.tag_))
{
add_link(link->get_aid(), pk.skt_);
return;
}
else if (detail::exit_t* ex = boost::get<detail::exit_t>(&pk.tag_))
{
mb_.push(*ex, pk.msg_);
base_type::remove_link(ex->get_aid());
}
else if (response_t* res = boost::get<response_t>(&pk.tag_))
{
is_response = true;
mb_.push(*res, pk.msg_);
}
if (
(recving_ && !is_response) ||
(responsing_ && is_response)
)
{
if (recving_ && !is_response)
{
bool ret = mb_.pop(recving_rcv_, recving_msg_, curr_match_.match_list_);
if (!ret)
{
return;
}
curr_match_.clear();
}
if (responsing_ && is_response)
{
BOOST_ASSERT(recving_res_.valid());
bool ret = mb_.pop(recving_res_, recving_msg_);
if (!ret)
{
return;
}
}
++tmr_sid_;
errcode_t ec;
tmr_.cancel(ec);
resume(actor_normal);
}
}
else if (!pk.is_err_ret_)
{
if (detail::link_t* link = boost::get<detail::link_t>(&pk.tag_))
{
/// send actor exit msg
base_type::send_already_exited(link->get_aid(), pk.recver_);
}
else if (detail::request_t* req = boost::get<detail::request_t>(&pk.tag_))
{
/// reply actor exit msg
response_t res(req->get_id(), pk.recver_);
base_type::send_already_exited(req->get_aid(), res);
}
}
}
开发者ID:HappySky2046,项目名称:gce,代码行数:77,代码来源:coroutine_stackful_actor.cpp
注:本文中的resume函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论