Ejemplo n.º 1
0
    // ------------------------------------------------------------------------
    void ServersManager::setJoinedServer(uint32_t id)
    {
        MutexLocker(m_joined_server);
        delete m_joined_server.getData();

        // It's a copy!
        m_joined_server.getData() = new Server(*getServerByID(id));
    }   // setJoinedServer
Ejemplo n.º 2
0
// -------------------------------------------------------------------------------- //
void guTuneInRadioProvider::EndReadStationsThread( void )
{
    wxMutexLocker MutexLocker( m_ReadStationsThreadMutex );
    m_ReadStationsThread = NULL;

//    m_RadioPanel->EndLoadingStations();
    wxCommandEvent Event( wxEVT_MENU, ID_RADIO_LOADING_STATIONS_FINISHED );
    wxPostEvent( m_RadioPanel, Event );
}
Ejemplo n.º 3
0
// -------------------------------------------------------------------------------- //
void guTuneInRadioProvider::CancellSearchStations( void )
{
    wxMutexLocker MutexLocker( m_ReadStationsThreadMutex );
    if( m_ReadStationsThread )
    {
        m_ReadStationsThread->Pause();
        m_ReadStationsThread->Delete();
        m_ReadStationsThread = NULL;
    }
}
Ejemplo n.º 4
0
void ciMethodData::load_extra_data() {
  MethodData* mdo = get_MethodData();

  MutexLocker(mdo->extra_data_lock());

  // speculative trap entries also hold a pointer to a Method so need to be translated
  DataLayout* dp_src  = mdo->extra_data_base();
  DataLayout* end_src = mdo->args_data_limit();
  DataLayout* dp_dst  = extra_data_base();
  for (;; dp_src = MethodData::next_extra(dp_src), dp_dst = MethodData::next_extra(dp_dst)) {
    assert(dp_src < end_src, "moved past end of extra data");
    assert(((intptr_t)dp_dst) - ((intptr_t)extra_data_base()) == ((intptr_t)dp_src) - ((intptr_t)mdo->extra_data_base()), "source and destination don't match");

    // New traps in the MDO may have been added since we copied the
    // data (concurrent deoptimizations before we acquired
    // extra_data_lock above) or can be removed (a safepoint may occur
    // in the translate_from call below) as we translate the copy:
    // update the copy as we go.
    int tag = dp_src->tag();
    if (tag != DataLayout::arg_info_data_tag) {
      memcpy(dp_dst, dp_src, ((intptr_t)MethodData::next_extra(dp_src)) - ((intptr_t)dp_src));
    }

    switch(tag) {
    case DataLayout::speculative_trap_data_tag: {
      ciSpeculativeTrapData* data_dst = new ciSpeculativeTrapData(dp_dst);
      SpeculativeTrapData* data_src = new SpeculativeTrapData(dp_src);

      data_dst->translate_from(data_src);

#ifdef ASSERT
      SpeculativeTrapData* data_src2 = new SpeculativeTrapData(dp_src);
      assert(data_src2->method() == data_src->method() && data_src2->bci() == data_src->bci(), "entries changed while translating");
#endif

      break;
    }
    case DataLayout::bit_data_tag:
      break;
    case DataLayout::no_tag:
    case DataLayout::arg_info_data_tag:
      // An empty slot or ArgInfoData entry marks the end of the trap data
      return;
    default:
      fatal(err_msg("bad tag = %d", dp_dst->tag()));
    }
  }
}
Ejemplo n.º 5
0
/** Initialize Lua state.
 * Initializes the state and makes all necessary initializations.
 * @return fresh initialized Lua state
 */
lua_State *
LuaContext::init_state()
{
  lua_State *L = luaL_newstate();
  luaL_openlibs(L);

  if (__enable_tracebacks) {
    lua_getglobal(L, "debug");
    lua_getfield(L, -1, "traceback");
    lua_remove(L, -2);
  }

  // Add package paths
  for (__slit = __package_dirs.begin(); __slit != __package_dirs.end(); ++__slit) {
    do_string(L, "package.path = package.path .. \";%s/?.lua;%s/?/init.lua\"", __slit->c_str(), __slit->c_str());
  }

  for (__slit = __cpackage_dirs.begin(); __slit != __cpackage_dirs.end(); ++__slit) {
    do_string(L, "package.cpath = package.cpath .. \";%s/?.so\"", __slit->c_str());
  }

  // load base packages
  for (__slit = __packages.begin(); __slit != __packages.end(); ++__slit) {
    do_string(L, "require(\"%s\")", __slit->c_str());
  }

  for ( __utit = __usertypes.begin(); __utit != __usertypes.end(); ++__utit) {
    tolua_pushusertype(L, __utit->second.first, __utit->second.second.c_str());
    lua_setglobal(L, __utit->first.c_str());
  }

  for ( __strings_it = __strings.begin(); __strings_it != __strings.end(); ++__strings_it) {
    lua_pushstring(L, __strings_it->second.c_str());
    lua_setglobal(L, __strings_it->first.c_str());
  }

  for ( __booleans_it = __booleans.begin(); __booleans_it != __booleans.end(); ++__booleans_it) {
    lua_pushboolean(L, __booleans_it->second);
    lua_setglobal(L, __booleans_it->first.c_str());
  }

  for ( __numbers_it = __numbers.begin(); __numbers_it != __numbers.end(); ++__numbers_it) {
    lua_pushnumber(L, __numbers_it->second);
    lua_setglobal(L, __numbers_it->first.c_str());
  }

  for ( __integers_it = __integers.begin(); __integers_it != __integers.end(); ++__integers_it) {
    lua_pushinteger(L, __integers_it->second);
    lua_setglobal(L, __integers_it->first.c_str());
  }

  LuaContext *tmpctx = new LuaContext(L);
  MutexLocker(__watchers.mutex());
  LockList<LuaContextWatcher *>::iterator i;
  for (i = __watchers.begin(); i != __watchers.end(); ++i) {
    try {
      (*i)->lua_restarted(tmpctx);
    } catch (...) {
      delete tmpctx;
      lua_close(L);
      throw;
    }
  }
  delete tmpctx;

  if ( __start_script ) {
    if (access(__start_script, R_OK) == 0) {
      // it's a file and we can access it, execute it!
      do_file(L, __start_script);
    } else {
      do_string(L, "require(\"%s\")", __start_script);
    }
  }

  return L;
}
Ejemplo n.º 6
0
 // ------------------------------------------------------------------------
 ServersManager::~ServersManager()
 {
     cleanUpServers();
     MutexLocker(m_joined_server);
     delete m_joined_server.getData();
 }   // ~ServersManager
Ejemplo n.º 7
0
 // ------------------------------------------------------------------------
 void ServersManager::sort(bool sort_desc)
 {
     MutexLocker(m_sorted_servers);
     m_sorted_servers.getData().insertionSort(0, sort_desc);
 }   // sort
Ejemplo n.º 8
0
 // ------------------------------------------------------------------------
 const Server* ServersManager::getServerByID (uint32_t id) const
 {
     MutexLocker(m_mapped_servers);
     return m_mapped_servers.getData().at(id);
 }   // getServerByID
Ejemplo n.º 9
0
 // ------------------------------------------------------------------------
 const Server* ServersManager::getServerBySort (int index) const
 {
     MutexLocker(m_sorted_servers);
     return m_sorted_servers.getData().get(index);
 }   // getServerBySort
Ejemplo n.º 10
0
 // ------------------------------------------------------------------------
 int ServersManager::getNumServers () const
 {
     MutexLocker(m_sorted_servers);
     return m_sorted_servers.getData().size();
 }   // getNumServers
Ejemplo n.º 11
0
 // ------------------------------------------------------------------------
 void ServersManager::unsetJoinedServer()
 {
     MutexLocker(m_joined_server);
     delete m_joined_server.getData();
     m_joined_server.getData() = NULL;
 }   // unsetJoinedServer