int nSend(nTask task, void *msg) { int rc; START_CRITICAL(); pending_sends++; { nTask this_task= current_task; if (task->status==WAIT_SEND || task->status==WAIT_SEND_TIMEOUT) { if (task->status==WAIT_SEND_TIMEOUT) CancelTask(task); task->status= READY; PushTask(ready_queue, task); /* En primer lugar en la cola */ } else if (task->status==ZOMBIE) nFatalError("nSend", "El receptor es un ``zombie''\n"); /* En nReply se coloca ``this_task'' en la cola de tareas ready */ PutTask(task->send_queue, this_task); this_task->send.msg= msg; this_task->status= WAIT_REPLY; ResumeNextReadyTask(); rc= this_task->send.rc; } pending_sends--; END_CRITICAL(); return rc; }
/** * @brief Called when mouse cursor position is changed. */ void MouseHoverUITask::MouseMove() { if (!changeStatusAccordingToMouse()) { CancelTask(); } }
void ActiveElementManager::HandlePanStart() { // The user started to pan, so we don't want mTarget to be :active. // Make it not :active, and clear any pending task to make it :active. CancelTask(); ResetActive(); }
/** * @brief Called when timer event occurred. * @param timerId ID of the timer. */ void MouseHoverUITask::TimerEvent(SInt32 timerId) { if (timerId != UIController::TimerID_MouseHover) { return; } UInt32 commandState = getUIManager()->GetCommandState(targetCommandID); if (commandState & UIManager::CommandState_Disabled & commandState) { CancelTask(); return; } if (!changeStatusAccordingToMouse()) { CancelTask(); return; } if (isBeingHot) { if (currentStep < stepCount) { currentStep++; updateAppearance(); } } else { if (currentStep > 0) { currentStep--; updateAppearance(); if (currentStep == 0) { CancelTask(); } } } }
void ActiveElementManager::HandleTouchEnd(bool aWasClick) { // If the touch was a click, make mTarget :active right away. // nsEventStateManager will reset the active element when processing // the mouse-down event generated by the click. CancelTask(); if (aWasClick) { SetActive(mTarget); } // Clear mTarget for next touch. mTarget = nullptr; }
void ActiveElementManager::SetTargetElement(nsIDOMEventTarget* aTarget) { if (mTarget) { // Multiple fingers on screen (since HandleTouchEnd clears mTarget). CancelTask(); ResetActive(); mTarget = nullptr; return; } mTarget = do_QueryInterface(aTarget); TriggerElementActivation(); }
void ActiveElementManager::SetTargetElement(dom::EventTarget* aTarget) { if (mTarget) { // Multiple fingers on screen (since HandleTouchEnd clears mTarget). AEM_LOG("Multiple fingers on-screen, clearing target element\n"); CancelTask(); ResetActive(); ResetTouchBlockState(); return; } mTarget = do_QueryInterface(aTarget); AEM_LOG("Setting target element to %p\n", mTarget.get()); TriggerElementActivation(); }
void ActiveElementManager::HandleTouchStart(bool aCanBePan) { AEM_LOG("Touch start, aCanBePan: %d\n", aCanBePan); if (mCanBePanSet) { // Multiple fingers on screen (since HandleTouchEnd clears mCanBePanSet). AEM_LOG("Multiple fingers on-screen, clearing touch block state\n"); CancelTask(); ResetActive(); ResetTouchBlockState(); return; } mCanBePan = aCanBePan; mCanBePanSet = true; TriggerElementActivation(); }
void ActiveElementManager::HandleTouchEnd(bool aWasClick) { AEM_LOG("Touch end, aWasClick: %d\n", aWasClick); // If the touch was a click, make mTarget :active right away. // nsEventStateManager will reset the active element when processing // the mouse-down event generated by the click. CancelTask(); if (aWasClick) { SetActive(mTarget); } else { // We might reach here if mCanBePan was false on touch-start and // so we set the element active right away. Now it turns out the // action was not a click so we need to reset the active element. ResetActive(); } ResetTouchBlockState(); }
void DigitallyImportedUrlHandler::LoadPlaylistFinished(QIODevice* device) { if (task_id_ == -1) { return; } // Stop the spinner in the status bar CancelTask(); // Try to parse the playlist PlaylistParser parser(nullptr); QList<Song> songs = parser.LoadFromDevice(device); qLog(Info) << "Loading station finished, got" << songs.count() << "songs"; // Failed to get playlist? if (songs.count() == 0) { service_->StreamError(tr("Error loading di.fm playlist")); return; } emit AsyncLoadComplete(LoadResult( last_original_url_, LoadResult::TrackAvailable, songs[0].url())); }