void MavlinkFTP::_workerTrampoline(void *arg) { auto req = reinterpret_cast<Request *>(arg); auto server = MavlinkFTP::getServer(); // call the server worker with the work item server->_worker(req); }
// * class KitSocket * KitSocket::KitSocket(const QString &host, unsigned short port, int timeout) : wHost(host), wPort(port), wTimeout(timeout), timer(this) { keepAlive = true; paused = false; ksocket = 0; QObject::connect(&timer, SIGNAL(timeout()), this, SLOT(_worker())); }
bool DeferredWriter::insertDocument(BSONObj obj) { // We can't insert documents if we haven't been started up. invariant(_pool); stdx::lock_guard<stdx::mutex> lock(_mutex); // Check if we're allowed to insert this object. if (_numBytes + obj.objsize() >= _maxNumBytes) { // If not, drop it. We always drop new entries rather than old ones; that way the caller // knows at the time of the call that the entry was dropped. _logDroppedEntry(); return false; } // Add the object to the buffer. _numBytes += obj.objsize(); fassert(40588, _pool->schedule([this, obj] { _worker(InsertStatement(obj.getOwned())); })); return true; }
int main(void) { WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer set_dco(1); // Set 1MHz clock // BIT 7-6 = 00 Select MCLK to DCOCLK // BIT 5-4 = 00 Set MCLK Clock Divider to /1 // BIT 3 = 0 Select SMCLK to DCOCLK // BIT 2-1 = 00 Set SMCLK Clock Divider to /1 // BIT 0 = 0 DCO resistor: internal (no meaning because using external is not possible) BCSCTL2 = 0; // Bit 5-4 = 11 Set ACLK Clock Divider to /8 BCSCTL1 |= DIVA0 + DIVA1; // Bit 5-4 = 10 Select Low frequency clock to VLOCLK BCSCTL3 &= ~LFXT1S0; BCSCTL3 |= LFXT1S1; _init(); // initialize the peripheries __delay_cycles(800000); // Startup delay - wait every peripheries // Setup Watchdog timer to provide the measurement time // WDTSSEL - 1 - Source ACLK (~12 kHz VLO) // WDTISx - 10 - clock/512 (23 - 24 Hz) // WDTTMSEL - 1 - Interval mode WDTCTL = WDTPW | WDTSSEL | WDTIS1 | WDTTMSEL; IE1 |= WDTIE; // Enable WDT interrupt _EINT(); // Enable interrupts // the main loop while(1) { // task sequence switch(scheduler) { case 0: // Wake Up MCP9808 MCP9808_LPM(0); // lit conversion LCD segment LCDFL |= LCD_P1; lcd35_send(); break; case 1: _worker(); // Shutdown MCP9808 MCP9808_LPM(1); // switch of conversion LCD segment LCDFL &= ~LCD_P1; lcd35_send(); break; case work_cycle: scheduler = -1; // reset the sequence counter break; } scheduler++; if(ADC_busy) // if ADC conversion is running we can only switch off the processor and not the SMCLK { LPM0; } else { LPM3; } } }
void PlayerAchievementMgr::SendAchievementEarned(AchievementEntry const* achievement) const { // Don't send for achievements with ACHIEVEMENT_FLAG_HIDDEN if (achievement->Flags & ACHIEVEMENT_FLAG_HIDDEN) return; TC_LOG_DEBUG("criteria.achievement", "PlayerAchievementMgr::SendAchievementEarned(%u)", achievement->ID); if (!(achievement->Flags & ACHIEVEMENT_FLAG_TRACKING_FLAG)) { if (Guild* guild = sGuildMgr->GetGuildById(_owner->GetGuildId())) { Trinity::BroadcastTextBuilder _builder(_owner, CHAT_MSG_GUILD_ACHIEVEMENT, BROADCAST_TEXT_ACHIEVEMENT_EARNED, _owner->getGender(), _owner, achievement->ID); Trinity::LocalizedPacketDo<Trinity::BroadcastTextBuilder> _localizer(_builder); guild->BroadcastWorker(_localizer, _owner); } if (achievement->Flags & (ACHIEVEMENT_FLAG_REALM_FIRST_KILL | ACHIEVEMENT_FLAG_REALM_FIRST_REACH)) { // broadcast realm first reached WorldPackets::Achievement::ServerFirstAchievement serverFirstAchievement; serverFirstAchievement.Name = _owner->GetName(); serverFirstAchievement.PlayerGUID = _owner->GetGUID(); serverFirstAchievement.AchievementID = achievement->ID; sWorld->SendGlobalMessage(serverFirstAchievement.Write()); } // if player is in world he can tell his friends about new achievement else if (_owner->IsInWorld()) { Trinity::BroadcastTextBuilder _builder(_owner, CHAT_MSG_ACHIEVEMENT, BROADCAST_TEXT_ACHIEVEMENT_EARNED, _owner->getGender(), _owner, achievement->ID); Trinity::LocalizedPacketDo<Trinity::BroadcastTextBuilder> _localizer(_builder); Trinity::PlayerDistWorker<Trinity::LocalizedPacketDo<Trinity::BroadcastTextBuilder>> _worker(_owner, sWorld->getFloatConfig(CONFIG_LISTEN_RANGE_SAY), _localizer); Cell::VisitWorldObjects(_owner, _worker, sWorld->getFloatConfig(CONFIG_LISTEN_RANGE_SAY)); } } WorldPackets::Achievement::AchievementEarned achievementEarned; achievementEarned.Sender = _owner->GetGUID(); achievementEarned.Earner = _owner->GetGUID(); achievementEarned.EarnerNativeRealm = achievementEarned.EarnerVirtualRealm = GetVirtualRealmAddress(); achievementEarned.AchievementID = achievement->ID; achievementEarned.Time = time(NULL); if (!(achievement->Flags & ACHIEVEMENT_FLAG_TRACKING_FLAG)) _owner->SendMessageToSetInRange(achievementEarned.Write(), sWorld->getFloatConfig(CONFIG_LISTEN_RANGE_SAY), true); else _owner->SendDirectMessage(achievementEarned.Write()); }