jjzjj

pthread_exit

全部标签

c - 当 pthread 在等待互斥体时死亡会发生什么?

如果一个进程有三个线程,T1、T2和T3,并且所有三个线程都试图获取互斥锁M1上的锁,我理解一个将获取互斥锁,而另外两个将等待直到它们获取互斥锁。如果我使用pthread_mutexattr_setrobust()使线程健壮,那么我明白如果T1持有M1,并且T1在释放M1之前终止,T2将被EOWNERDEAD的返回值唤醒。然后T2可以清理protected资源的状态。现在,如果T1拥有M1而T2和T3正在等待M1,会发生什么情况。T2终止。发生什么了?当T1释放M1时,互斥体是否直接进入T3?T3是否获得了EOWNERDEAD,或者它只是看起来T3就像什么都没有发生并且不需要清理?似乎

windows - npm 安装错误 : `gyp` failed with exit code: 1

我尝试使用npm5.6.0在Windows10上安装模块。当我输入npminstall时,我得到:gypERR!configureerrorgypERR!stackError:`gyp`failedwithexitcode:1gypERR!stackatChildProcess.onCpExit(C:\Users\xiaooming\Desktop\app\node_modules\node-gyp\lib\configure.js:336:16)gypERR!stackatemitTwo(events.js:126:13)gypERR!stackatChildProcess.emit

c# - Application.Exit() 哪个操作是第一个

当我阅读MSDN上有关Application.Exit()的文档时,它说:通知所有消息泵它们必须终止,然后在处理完消息后关闭所有应用程序窗口。以我的理解,为了通知所有消息泵终止,该方法最终会向应用程序消息队列发送一个WM_QUIT消息。发布消息后,该方法将关闭每个窗口(通过MSDN)。问题出现在这里,当这个方法试图关闭每个窗口时,WM_QUIT消息应该没有被处理,但是MSDN说“它关闭所有窗口aftermessages已处理”。文档似乎与我的推断矛盾。这里有什么问题,非常感谢任何帮助。 最佳答案 有趣的问题;使用ILSpy,让我们看

c# - 机器人框架 : How to exit Conversation?

所以现在我正在使用Microsoft.Bot.Builder.Dialogs.Conversation.SendAsync和Microsoft.Bot.Builder.Dialogs.Conversation.ResumeAsync来实现一个暂停和恢复对话的方法,但似乎不可能“退出”或返回到以前的状态。它卡在对话对话框中。我是否只执行“取消”命令?如果是这样,我需要清除哪些数据才能恢复到原始状态?publicstaticreadonlyIDialogdialog=Chain.PostToChain().Switch(newCase>((msg)=>{varregex=newRegex(

c# - 代码合约: ccrewrite exited with code -1?

我是契约(Contract)代码的新手。我下载了最新版本的代码合约项目(1.4.40314.1)并开始在我的项目中实现它。当我在VS2010中通过代码契约(Contract)选项卡启用“Runtume检查”时,出现此错误错误1​​命令“"C:\ProgramFiles(x86)\Microsoft\Contracts\Bin\ccrewrite""@Application1ccrewrite.rsp""以代码-1退出。每次我构建项目。请帮忙。现在这对我来说是个大问题。每个使用代码契约(Contract)的项目都在VS2010错误窗口中显示相同的错误,并且在输出窗口中找不到“Applic

c# - 在 Using block 中调用 Environment.Exit()

如果我有一个代码如下的控制台应用程序:using(DisposableObjectobject=newDisposableObject()){if(acondition)Environment.Exit(0);//DoStuff}我的元素会被妥善处置吗?还是线程在对象被清理之前就死了? 最佳答案 您的应用程序将终止,所有托管内存将在此时释放。生成的finallyblock不会执行,所以任何Dispose方法都不会被调用,所以任何非托管资源都不会被释放。参见Don'tBlindlyCountonaFinalizer.

c# - 如何在没有 "process has exited"异常的情况下终止进程?

我使用Process.Kill()来终止进程。像这样:if(!process.WaitForExit(5000)){process.Kill();}有时进程会在两行之间退出,所以控制会进入if然后Kill会产生异常:System.InvalidOperationExceptionCannotprocessrequestbecausetheprocess(ProcessIdHere)hasexited.atSystem.Diagnostics.Process.GetProcessHandle(Int32access,BooleanthrowIfExited)atSystem.Diagno

c# - Process.Start ("IEXPLORE.EXE") 在启动后立即触发 Exited 事件。为什么?

我在xp中安装IE8时遇到一个奇怪的问题。我试图在c#中使用System.Diagnostics.Process.Start方法启动IE。我需要捕获IE的退出事件并进行一些操作。但我最终遇到了一个相当奇怪的问题,即IE在启动后立即触发exited事件。这是示例代码ProcessobjProcess=Process.Start("IEXPLORE.EXE","http://google.com");if(objProcess!=null){objProcess.EnableRaisingEvents=true;objProcess.Exited+=newEventHandler(myPr

c# - Process.Exited 并不总是触发

如果我运行以下代码:ProcessmyProcess=newSystem.Diagnostics.Process();myProcess.StartInfo.FileName="notepad.exe";myProcess.EnableRaisingEvents=true;myProcess.Exited+=newSystem.EventHandler(Process_OnExit);myProcess.Start();publicstaticvoidProcess_OnExit(objectsender,EventArgse){//Deletethefileonexit}当我退出记事

c# - 当不使用 Environment.Exit() 时,.net 程序可以有哪些退出代码?

如果.net程序未能在终止前明确设置退出代码(通过调用Environment.Exit()/Appliation.Current.Shutdown()/...),该进程的退出代码是什么?正常终止是否总是导致退出代码为零,其他可能的情况是什么?根据thisanswer相关问题GettingExitCodeFromExceptionHandler作者HansPassant:“如果一个程序因异常而死,那么它的退出代码通常与底层异常错误代码相同”。所以一个未被发现的异常可以改变退出代码。这种情况是否总是,底层异常错误代码是否始终保证不为零,并且在特定范围内?在其他情况下,.net框架或Wind