本文整理汇总了C++中GList::First方法的典型用法代码示例。如果您正苦于以下问题:C++ GList::First方法的具体用法?C++ GList::First怎么用?C++ GList::First使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GList
的用法示例。
在下文中一共展示了GList::First方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: it
InterfaceInstance *GetInterface(const char *pzModelType)
{
if (m_nThreadMode == 1 || m_nThreadMode == 2)
{
if(m_nThreadMode == 1)
{
// wait for the one and only
gthread_cond_wait(&m_cond, &m_condLock);
}
InterfaceInstance *pII = (InterfaceInstance *)m_lstInterfaces.First();
pII->InUse(1);
return pII;
}
if (m_nThreadMode == 3)
{
// find one that's not in use
gthread_mutex_lock(&m_lock);
InterfaceInstance *pII = 0;
GListIterator it(&m_lstInterfaces);
while (it())
{
pII = (InterfaceInstance *)it++;
if ( !pII->InUse() )
{
pII->InUse(1);
gthread_mutex_unlock(&m_lock);
return pII; // and return it
}
}
// unlock the mutex while we create a new instance, this will take a while
gthread_mutex_unlock(&m_lock);
pII = new InterfaceInstance(pzModelType);
pII->InUse(1);
gthread_mutex_lock(&m_lock);
// store the instance then return it
m_lstInterfaces.AddLast(pII);
gthread_mutex_unlock(&m_lock);
return pII;
}
else if (m_nThreadMode == 4)
{
return new InterfaceInstance(pzModelType);
}
return 0;
}