这篇教程C++ xmlMutexUnlock函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中xmlMutexUnlock函数的典型用法代码示例。如果您正苦于以下问题:C++ xmlMutexUnlock函数的具体用法?C++ xmlMutexUnlock怎么用?C++ xmlMutexUnlock使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了xmlMutexUnlock函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: savestatusinline void savestatus() { xmlNodePtr root = NULL; xmlNodePtr node = NULL; xmlChar* tmp = NULL; if ((strlen(statname) > 0) && (status != NULL)) { root = xmlDocGetRootElement(status); if (root) { xmlMutexLock(finishedMutex); for (node = root->children; node; node = node->next) { if (xmlStrcmp(node->name, "current") == 0) { xmlMutexLock(pwdMutex); tmp = xmlEncodeEntitiesReentrant(status, (const xmlChar*) &password); xmlMutexUnlock(pwdMutex); if (node->children) { if (password[0] == '/0') xmlNodeSetContent(node->children, getfirstpassword()); else xmlNodeSetContent(node->children, tmp); } xmlFree(tmp); } else if ((finished == 1) && (xmlStrcmp(node->name,"good_password") == 0)) { tmp = xmlEncodeEntitiesReentrant(status, (const xmlChar*) &password_good); if (node->children) xmlNodeSetContent(node->children, tmp); xmlFree(tmp); } } xmlMutexUnlock(finishedMutex); } xmlSaveFormatFileEnc(statname, status, "UTF-8", 1); } return;}
开发者ID:Rudloff,项目名称:rarcrack-debian,代码行数:33,
示例2: crack_threadvoid * crack_thread() { char * current; char ret[200]; char cmd[400]; FILE * Pipe; while (1) { current = nextpass(); sprintf((char*)&cmd, finalcmd, current, filename); Pipe = popen(cmd, "r"); while (!feof(Pipe)) { fgets((char*)&ret, 200, Pipe); if (strcasestr(ret, "ok") != NULL) { strcpy(password_good, current); xmlMutexLock(finishedMutex); finished = 1; printf("GOOD: password cracked: '%s'/n", current); xmlMutexUnlock(finishedMutex); savestatus(); break; } } pclose(Pipe); xmlMutexLock(finishedMutex); counter++; if (finished != 0) { xmlMutexUnlock(finishedMutex); break; } xmlMutexUnlock(finishedMutex); free(current); }}
开发者ID:Rudloff,项目名称:rarcrack-debian,代码行数:32,
示例3: xmlThrDefSetStructuredErrorFuncvoidxmlThrDefSetStructuredErrorFunc(void *ctx, xmlStructuredErrorFunc handler) { xmlMutexLock(xmlThrDefMutex); xmlGenericErrorContextThrDef = ctx; xmlStructuredErrorThrDef = handler; xmlMutexUnlock(xmlThrDefMutex);}
开发者ID:xuebai5,项目名称:TheNebulaDevice,代码行数:7,
示例4: xmlThrDefDoValidityCheckingDefaultValueint xmlThrDefDoValidityCheckingDefaultValue(int v) { int ret; xmlMutexLock(xmlThrDefMutex); ret = xmlDoValidityCheckingDefaultValueThrDef; xmlDoValidityCheckingDefaultValueThrDef = v; xmlMutexUnlock(xmlThrDefMutex); return ret;}
开发者ID:Open-SFC,项目名称:ond-of-driver,代码行数:8,
示例5: xmlThrDefLoadExtDtdDefaultValueint xmlThrDefLoadExtDtdDefaultValue(int v) { int ret; xmlMutexLock(xmlThrDefMutex); ret = xmlLoadExtDtdDefaultValueThrDef; xmlLoadExtDtdDefaultValueThrDef = v; xmlMutexUnlock(xmlThrDefMutex); return ret;}
开发者ID:Open-SFC,项目名称:ond-of-driver,代码行数:8,
示例6: xmlThrDefDefaultBufferSizeint xmlThrDefDefaultBufferSize(int v) { int ret; xmlMutexLock(xmlThrDefMutex); ret = xmlDefaultBufferSizeThrDef; xmlDefaultBufferSizeThrDef = v; xmlMutexUnlock(xmlThrDefMutex); return ret;}
开发者ID:xuebai5,项目名称:TheNebulaDevice,代码行数:8,
示例7: xmlThrDefBufferAllocSchemexmlBufferAllocationScheme xmlThrDefBufferAllocScheme(xmlBufferAllocationScheme v) { xmlBufferAllocationScheme ret; xmlMutexLock(xmlThrDefMutex); ret = xmlBufferAllocSchemeThrDef; xmlBufferAllocSchemeThrDef = v; xmlMutexUnlock(xmlThrDefMutex); return ret;}
开发者ID:xuebai5,项目名称:TheNebulaDevice,代码行数:8,
示例8: xmlThrDefGetWarningsDefaultValueint xmlThrDefGetWarningsDefaultValue(int v) { int ret; xmlMutexLock(xmlThrDefMutex); ret = xmlGetWarningsDefaultValueThrDef; xmlGetWarningsDefaultValueThrDef = v; xmlMutexUnlock(xmlThrDefMutex); return ret;}
开发者ID:Open-SFC,项目名称:ond-of-driver,代码行数:8,
示例9: xmlThrDefSubstituteEntitiesDefaultValueint xmlThrDefSubstituteEntitiesDefaultValue(int v) { int ret; xmlMutexLock(xmlThrDefMutex); ret = xmlSubstituteEntitiesDefaultValueThrDef; xmlSubstituteEntitiesDefaultValueThrDef = v; xmlMutexUnlock(xmlThrDefMutex); return ret;}
开发者ID:Open-SFC,项目名称:ond-of-driver,代码行数:8,
示例10: xmlThrDefTreeIndentStringconst char * xmlThrDefTreeIndentString(const char * v) { const char * ret; xmlMutexLock(xmlThrDefMutex); ret = xmlTreeIndentStringThrDef; xmlTreeIndentStringThrDef = v; xmlMutexUnlock(xmlThrDefMutex); return ret;}
开发者ID:Open-SFC,项目名称:ond-of-driver,代码行数:8,
示例11: status_threadvoid * status_thread() { int pwds; const short status_sleep = 3; while(1) { sleep(status_sleep); xmlMutexLock(finishedMutex); pwds = counter / status_sleep; counter = 0; if (finished != 0) break; xmlMutexUnlock(finishedMutex); xmlMutexLock(pwdMutex); printf("Probing: '%s' [%d pwds/sec]/n", password, pwds); xmlMutexUnlock(pwdMutex); savestatus(); //FIXME: this is wrong, when probing current password(s) is(are) not finished yet, and the program is exiting }}
开发者ID:Rudloff,项目名称:rarcrack-debian,代码行数:17,
示例12: nextpassinline char* nextpass() { //IMPORTANT: the returned string must be freed char *ok = malloc(sizeof(char)*(PWD_LEN+1)); xmlMutexLock(pwdMutex); strcpy(ok, password); nextpass2((char*) &password, curr_len - 1); xmlMutexUnlock(pwdMutex); return ok;}
开发者ID:Rudloff,项目名称:rarcrack-debian,代码行数:8,
示例13: xmlThrDefKeepBlanksDefaultValueint xmlThrDefKeepBlanksDefaultValue(int v) { int ret; xmlMutexLock(xmlThrDefMutex); ret = xmlKeepBlanksDefaultValueThrDef; xmlKeepBlanksDefaultValueThrDef = v; xmlMutexUnlock(xmlThrDefMutex); return ret;}
开发者ID:Open-SFC,项目名称:ond-of-driver,代码行数:8,
示例14: xmlThrDefLineNumbersDefaultValueint xmlThrDefLineNumbersDefaultValue(int v) { int ret; xmlMutexLock(xmlThrDefMutex); ret = xmlLineNumbersDefaultValueThrDef; xmlLineNumbersDefaultValueThrDef = v; xmlMutexUnlock(xmlThrDefMutex); return ret;}
开发者ID:Open-SFC,项目名称:ond-of-driver,代码行数:8,
示例15: xmlThrDefPedanticParserDefaultValueint xmlThrDefPedanticParserDefaultValue(int v) { int ret; xmlMutexLock(xmlThrDefMutex); ret = xmlPedanticParserDefaultValueThrDef; xmlPedanticParserDefaultValueThrDef = v; xmlMutexUnlock(xmlThrDefMutex); return ret;}
开发者ID:Open-SFC,项目名称:ond-of-driver,代码行数:8,
示例16: xmlThrDefIndentTreeOutputint xmlThrDefIndentTreeOutput(int v) { int ret; xmlMutexLock(xmlThrDefMutex); ret = xmlIndentTreeOutputThrDef; xmlIndentTreeOutputThrDef = v; xmlMutexUnlock(xmlThrDefMutex); return ret;}
开发者ID:Open-SFC,项目名称:ond-of-driver,代码行数:8,
示例17: xmlThrDefSaveNoEmptyTagsint xmlThrDefSaveNoEmptyTags(int v) { int ret; xmlMutexLock(xmlThrDefMutex); ret = xmlSaveNoEmptyTagsThrDef; xmlSaveNoEmptyTagsThrDef = v; xmlMutexUnlock(xmlThrDefMutex); return ret;}
开发者ID:Open-SFC,项目名称:ond-of-driver,代码行数:8,
示例18: xmlThrDefParserDebugEntitiesint xmlThrDefParserDebugEntities(int v) { int ret; xmlMutexLock(xmlThrDefMutex); ret = xmlParserDebugEntitiesThrDef; xmlParserDebugEntitiesThrDef = v; xmlMutexUnlock(xmlThrDefMutex); return ret;}
开发者ID:Open-SFC,项目名称:ond-of-driver,代码行数:8,
示例19: xmlMallocAtomicLocvoid *xmlMallocAtomicLoc(size_t size, const char * file, int line){ MEMHDR *p; void *ret; if (!xmlMemInitialized) xmlInitMemory();#ifdef DEBUG_MEMORY xmlGenericError(xmlGenericErrorContext, "Malloc(%d)/n",size);#endif TEST_POINT p = (MEMHDR *) malloc(RESERVE_SIZE+size); if (!p) { xmlGenericError(xmlGenericErrorContext, "xmlMallocLoc : Out of free space/n"); xmlMemoryDump(); return(NULL); } p->mh_tag = MEMTAG; p->mh_size = size; p->mh_type = MALLOC_ATOMIC_TYPE; p->mh_file = file; p->mh_line = line; xmlMutexLock(xmlMemMutex); p->mh_number = ++block; debugMemSize += size; debugMemBlocks++; if (debugMemSize > debugMaxMemSize) debugMaxMemSize = debugMemSize;#ifdef MEM_LIST debugmem_list_add(p);#endif xmlMutexUnlock(xmlMemMutex);#ifdef DEBUG_MEMORY xmlGenericError(xmlGenericErrorContext, "Malloc(%d) Ok/n",size);#endif if (xmlMemStopAtBlock == p->mh_number) xmlMallocBreakpoint(); ret = HDR_2_CLIENT(p); if (xmlMemTraceBlockAt == ret) { xmlGenericError(xmlGenericErrorContext, "%p : Malloc(%ld) Ok/n", xmlMemTraceBlockAt, (long)size); xmlMallocBreakpoint(); } TEST_POINT return(ret);}
开发者ID:vgurev,项目名称:freesurfer,代码行数:58,
示例20: xmlMemBlocksintxmlMemBlocks(void) { int res; xmlMutexLock(xmlMemMutex); res = debugMemBlocks; xmlMutexUnlock(xmlMemMutex); return(res);}
开发者ID:BalajiB,项目名称:KitchenDrawer,代码行数:9,
示例21: xmlMemUsedintxmlMemUsed(void) { int res; xmlMutexLock(xmlMemMutex); res = debugMemSize; xmlMutexUnlock(xmlMemMutex); return(res);}
开发者ID:BalajiB,项目名称:KitchenDrawer,代码行数:9,
示例22: xmlMutexLockbool House::save(){ xmlDocPtr doc; xmlNodePtr root, tmp; xmlMutexLock(xmlmutex); doc = xmlNewDoc((const xmlChar*)"1.0"); doc->children = xmlNewDocNode(doc, NULL, (const xmlChar*)"house", NULL); root = doc->children; std::stringstream sb; tmp = xmlNewNode(NULL, (const xmlChar*)"frontdoor"); sb << frontDoor.x; xmlSetProp(tmp, (const xmlChar*) "x", (const xmlChar*)sb.str().c_str()); sb.str(""); sb << frontDoor.y; xmlSetProp(tmp, (const xmlChar*) "y", (const xmlChar*)sb.str().c_str()); sb.str(""); sb << frontDoor.z; xmlSetProp(tmp, (const xmlChar*) "z", (const xmlChar*)sb.str().c_str()); sb.str(""); xmlAddChild(root, tmp); tmp = xmlNewNode(NULL, (const xmlChar*)"owner"); xmlSetProp(tmp, (const xmlChar*)"name", (const xmlChar*)owner.c_str()); xmlAddChild(root, tmp); for (size_t i = 0; i < subOwners.size(); i++) { tmp = xmlNewNode(NULL, (const xmlChar*)"subowner"); xmlSetProp(tmp, (const xmlChar*)"name", (const xmlChar*)subOwners[i].c_str()); xmlAddChild(root, tmp); } for (size_t i = 0; i < guests.size(); i++) { tmp = xmlNewNode(NULL, (const xmlChar*)"guest"); xmlSetProp(tmp, (const xmlChar*)"name", (const xmlChar*)guests[i].c_str()); xmlAddChild(root, tmp); } DoorOwnersMap::const_iterator iter = doorOwners.begin(); while (iter != doorOwners.end()) { Position pos = iter->first; for (size_t i = 0; i < iter->second.size(); i++) { tmp = xmlNewNode(NULL, (const xmlChar*)"doorowner"); // TODO: optimize sb << pos.x; xmlSetProp(tmp, (const xmlChar*) "x", (const xmlChar*)sb.str().c_str()); sb.str(""); sb << pos.y; xmlSetProp(tmp, (const xmlChar*) "y", (const xmlChar*)sb.str().c_str()); sb.str(""); sb << pos.z; xmlSetProp(tmp, (const xmlChar*) "z", (const xmlChar*)sb.str().c_str()); sb.str(""); xmlSetProp(tmp, (const xmlChar*)"name", (const xmlChar*)iter->second[i].c_str()); xmlAddChild(root, tmp); } ++iter; } xmlSaveFile(file.c_str(), doc); xmlFreeDoc(doc); xmlMutexUnlock(xmlmutex); return true;}
开发者ID:divinity76,项目名称:YurOTS,代码行数:56,
示例23: xmlThrDefSetGenericErrorFuncvoidxmlThrDefSetGenericErrorFunc(void *ctx, xmlGenericErrorFunc handler) { xmlMutexLock(xmlThrDefMutex); xmlGenericErrorContextThrDef = ctx; if (handler != NULL) xmlGenericErrorThrDef = handler; else xmlGenericErrorThrDef = xmlGenericErrorDefaultFunc; xmlMutexUnlock(xmlThrDefMutex);}
开发者ID:xuebai5,项目名称:TheNebulaDevice,代码行数:10,
示例24: xmlMemShowvoidxmlMemShow(FILE *fp, int nr ATTRIBUTE_UNUSED){#ifdef MEM_LIST MEMHDR *p;#endif if (fp != NULL) fprintf(fp," MEMORY ALLOCATED : %lu, MAX was %lu/n", debugMemSize, debugMaxMemSize);#ifdef MEM_LIST xmlMutexLock(xmlMemMutex); if (nr > 0) { fprintf(fp,"NUMBER SIZE TYPE WHERE/n"); p = memlist; while ((p) && nr > 0) { fprintf(fp,"%6lu %6lu ",p->mh_number,(unsigned long)p->mh_size); switch (p->mh_type) { case STRDUP_TYPE: fprintf(fp,"strdup() in "); break; case MALLOC_TYPE: fprintf(fp,"malloc() in "); break; case MALLOC_ATOMIC_TYPE: fprintf(fp,"atomicmalloc() in "); break; case REALLOC_TYPE: fprintf(fp,"realloc() in "); break; case REALLOC_ATOMIC_TYPE: fprintf(fp,"atomicrealloc() in "); break; default: fprintf(fp," ??? in "); break; } if (p->mh_file != NULL) fprintf(fp,"%s(%u)", p->mh_file, p->mh_line); if (p->mh_tag != MEMTAG) fprintf(fp," INVALID"); xmlMemContentShow(fp, p); fprintf(fp,"/n"); nr--; p = p->mh_next; } } xmlMutexUnlock(xmlMemMutex);#endif /* MEM_LIST */}
开发者ID:vgurev,项目名称:freesurfer,代码行数:53,
示例25: xmlMemStrdupLocchar *xmlMemStrdupLoc(const char *str, const char *file, int line){ char *s; size_t size = strlen(str) + 1; MEMHDR *p; if (!xmlMemInitialized) xmlInitMemory(); TEST_POINT p = (MEMHDR *) malloc(RESERVE_SIZE+size); if (!p) { goto error; } p->mh_tag = MEMTAG; p->mh_size = size; p->mh_type = STRDUP_TYPE; p->mh_file = file; p->mh_line = line; xmlMutexLock(xmlMemMutex); p->mh_number = ++block; debugMemSize += size; debugMemBlocks++; if (debugMemSize > debugMaxMemSize) debugMaxMemSize = debugMemSize;#ifdef MEM_LIST debugmem_list_add(p);#endif xmlMutexUnlock(xmlMemMutex); s = (char *) HDR_2_CLIENT(p); if (xmlMemStopAtBlock == p->mh_number) xmlMallocBreakpoint(); if (s != NULL) strcpy(s,str); else goto error; TEST_POINT if (xmlMemTraceBlockAt == s) { xmlGenericError(xmlGenericErrorContext, "%p : Strdup() Ok/n", xmlMemTraceBlockAt); xmlMallocBreakpoint(); } return(s);error: return(NULL);}
开发者ID:vgurev,项目名称:freesurfer,代码行数:53,
示例26: xmlThrDefDeregisterNodeDefaultxmlDeregisterNodeFuncxmlThrDefDeregisterNodeDefault(xmlDeregisterNodeFunc func){ xmlDeregisterNodeFunc old; xmlMutexLock(xmlThrDefMutex); old = xmlDeregisterNodeDefaultValueThrDef; __xmlRegisterCallbacks = 1; xmlDeregisterNodeDefaultValueThrDef = func; xmlMutexUnlock(xmlThrDefMutex); return(old);}
开发者ID:Open-SFC,项目名称:ond-of-driver,代码行数:14,
示例27: xmlThrDefParserInputBufferCreateFilenameDefaultxmlParserInputBufferCreateFilenameFuncxmlThrDefParserInputBufferCreateFilenameDefault(xmlParserInputBufferCreateFilenameFunc func){ xmlParserInputBufferCreateFilenameFunc old; xmlMutexLock(xmlThrDefMutex); old = xmlParserInputBufferCreateFilenameValueThrDef; if (old == NULL) { old = __xmlParserInputBufferCreateFilename; } xmlParserInputBufferCreateFilenameValueThrDef = func; xmlMutexUnlock(xmlThrDefMutex); return(old);}
开发者ID:Open-SFC,项目名称:ond-of-driver,代码行数:16,
示例28: xmlThrDefOutputBufferCreateFilenameDefaultxmlOutputBufferCreateFilenameFuncxmlThrDefOutputBufferCreateFilenameDefault(xmlOutputBufferCreateFilenameFunc func){ xmlOutputBufferCreateFilenameFunc old; xmlMutexLock(xmlThrDefMutex); old = xmlOutputBufferCreateFilenameValueThrDef;#ifdef LIBXML_OUTPUT_ENABLED if (old == NULL) { old = __xmlOutputBufferCreateFilename; }#endif xmlOutputBufferCreateFilenameValueThrDef = func; xmlMutexUnlock(xmlThrDefMutex); return(old);}
开发者ID:Open-SFC,项目名称:ond-of-driver,代码行数:17,
示例29: xmlMemDisplayvoidxmlMemDisplay(FILE *fp){#ifdef MEM_LIST MEMHDR *p; unsigned idx; int nb = 0;#if defined(HAVE_LOCALTIME) && defined(HAVE_STRFTIME) time_t currentTime; char buf[500]; struct tm * tstruct;#endif#endif FILE *old_fp = fp; if (fp == NULL) { fp = fopen(".memorylist", "w"); if (fp == NULL) return; }#ifdef MEM_LIST#if defined(HAVE_LOCALTIME) && defined(HAVE_STRFTIME) currentTime = time(NULL); tstruct = localtime(¤tTime); strftime(buf, sizeof(buf) - 1, "%I:%M:%S %p", tstruct); fprintf(fp," %s/n/n", buf);#endif fprintf(fp," MEMORY ALLOCATED : %lu, MAX was %lu/n", debugMemSize, debugMaxMemSize); fprintf(fp,"BLOCK NUMBER SIZE TYPE/n"); idx = 0; xmlMutexLock(xmlMemMutex); p = memlist; while (p) { fprintf(fp,"%-5u %6lu %6lu ",idx++,p->mh_number, (unsigned long)p->mh_size); switch (p->mh_type) { case STRDUP_TYPE:fprintf(fp,"strdup() in ");break; case MALLOC_TYPE:fprintf(fp,"malloc() in ");break; case REALLOC_TYPE:fprintf(fp,"realloc() in ");break; case MALLOC_ATOMIC_TYPE:fprintf(fp,"atomicmalloc() in ");break; case REALLOC_ATOMIC_TYPE:fprintf(fp,"atomicrealloc() in ");break; default: fprintf(fp,"Unknown memory block, may be corrupted"); xmlMutexUnlock(xmlMemMutex); if (old_fp == NULL) fclose(fp); return; } if (p->mh_file != NULL) fprintf(fp,"%s(%u)", p->mh_file, p->mh_line); if (p->mh_tag != MEMTAG) fprintf(fp," INVALID"); nb++; if (nb < 100) xmlMemContentShow(fp, p); else fprintf(fp," skip"); fprintf(fp,"/n"); p = p->mh_next; } xmlMutexUnlock(xmlMemMutex);#else fprintf(fp,"Memory list not compiled (MEM_LIST not defined !)/n");#endif if (old_fp == NULL) fclose(fp);}
开发者ID:151706061,项目名称:VTK,代码行数:71,
示例30: xmlMemFree/** * xmlMemFree: * @ptr: the memory block pointer * * a free() equivalent, with error checking. */voidxmlMemFree(void *ptr){ MEMHDR *p; char *target;#ifdef DEBUG_MEMORY size_t size;#endif if (ptr == (void *) -1) { xmlGenericError(xmlGenericErrorContext, "trying to free pointer from freed area/n"); goto error; } if (xmlMemTraceBlockAt == ptr) { xmlGenericError(xmlGenericErrorContext, "%p : Freed()/n", xmlMemTraceBlockAt); xmlMallocBreakpoint(); } TEST_POINT target = (char *) ptr; p = CLIENT_2_HDR(ptr); if (p->mh_tag != MEMTAG) { Mem_Tag_Err(p); goto error; } if (xmlMemStopAtBlock == p->mh_number) xmlMallocBreakpoint(); p->mh_tag = ~MEMTAG; memset(target, -1, p->mh_size); xmlMutexLock(xmlMemMutex); debugMemSize -= p->mh_size; debugMemBlocks--;#ifdef DEBUG_MEMORY size = p->mh_size;#endif#ifdef MEM_LIST debugmem_list_delete(p);#endif xmlMutexUnlock(xmlMemMutex); free(p); TEST_POINT#ifdef DEBUG_MEMORY xmlGenericError(xmlGenericErrorContext, "Freed(%d) Ok/n", size);#endif return; error: xmlGenericError(xmlGenericErrorContext, "xmlMemFree(%lX) error/n", (unsigned long) ptr); xmlMallocBreakpoint(); return;}
开发者ID:151706061,项目名称:VTK,代码行数:67,
注:本文中的xmlMutexUnlock函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ xmlNewChild函数代码示例 C++ xmlMutexLock函数代码示例 |