Thread overview | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
November 05, 2012 [Issue 8960] New: DMD 2.061 git head: Unable to set thread priority | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=8960 Summary: DMD 2.061 git head: Unable to set thread priority Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nobody@puremagic.com ReportedBy: andrej.mitrovich@gmail.com --- Comment #0 from Andrej Mitrovic <andrej.mitrovich@gmail.com> 2012-11-04 21:37:40 PST --- This has recently been recurring randomly in the autotester. core.thread.ThreadException@src/core/thread.d(982): Unable to set thread priority I don't know whether it's an issue with the test machines or druntime, but it's becoming a problem since it's causing failed test runs for pull requests that are unrelated to threading. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
December 23, 2012 [Issue 8960] DMD 2.061 git head: Unable to set thread priority | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrej Mitrovic | http://d.puremagic.com/issues/show_bug.cgi?id=8960 Andrej Mitrovic <andrej.mitrovich@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |WORKSFORME --- Comment #1 from Andrej Mitrovic <andrej.mitrovich@gmail.com> 2012-12-23 06:23:13 PST --- Looks like it's not happening anymore? Oh well.. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
February 27, 2013 [Issue 8960] DMD tester: Unable to set thread priority | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrej Mitrovic | http://d.puremagic.com/issues/show_bug.cgi?id=8960 Andrej Mitrovic <andrej.mitrovich@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED See Also| |http://d.puremagic.com/issu | |es/show_bug.cgi?id=9595 Resolution|WORKSFORME | Summary|DMD 2.061 git head: Unable |DMD tester: Unable to set |to set thread priority |thread priority --- Comment #2 from Andrej Mitrovic <andrej.mitrovich@gmail.com> 2013-02-27 15:18:55 PST --- It still happens randomly in every other pull request, so I'll have to reopen. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
June 11, 2013 [Issue 8960] DMD tester: Unable to set thread priority | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrej Mitrovic | http://d.puremagic.com/issues/show_bug.cgi?id=8960 Maxim Fomin <maxim@maxim-fomin.ru> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |maxim@maxim-fomin.ru --- Comment #3 from Maxim Fomin <maxim@maxim-fomin.ru> 2013-06-11 05:06:28 PDT --- Reduced (compile with -unittest) ------------------------------------- import std.parallelism; import std.stdio; import core.thread; unittest { static void refFun(ref uint num) { num++; } uint x; // Test executeInNewThread(). auto ct = scopedTask!refFun(x); ct.executeInNewThread(Thread.PRIORITY_MAX); ct.yieldForce; assert(ct.args[0] == 1); } void main(){} --------------------------------- According to observations it can fail in getter or in setter of thread priority. It seems that return code from pthread setters/getters is 3 which is ESRCH, which in pthread context means non-existing thread. Following snippet from std.parallelism gives a clue: this(AbstractTask* task, int priority = int.max) { assert(task); // Dummy value, not used. instanceStartIndex = 0; this.isSingleTask = true; task.taskStatus = TaskStatus.inProgress; this.head = task; singleTaskThread = new Thread(&doSingleTask); singleTaskThread.start(); if(priority != int.max) { singleTaskThread.priority = priority; } } Thread may finish before setting priorities as it was started before applying them. It seems that thread ID is same in three cases 1) before getter 2) before setter 3) in gdb message informing that thread has finished. Originally I got approx 1-2 per 100 executions but after inserting debug outputs the failure percentage increased (as I suppose) because thread had more chances to terminate before applying priorities. Also, there were cases when gdb reported that thread has finished before priority setter started execution. Can someone who uses FreeBSD check this? https://github.com/mxfm/phobos/commit/50854c479e4d965271fbb91f9203d24ac81b6820 https://github.com/mxfm/druntime/commit/0d60b15efdaebae65ee9109ca3a90aaee177a341 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
June 13, 2013 [Issue 8960] DMD tester: Unable to set thread priority | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrej Mitrovic | http://d.puremagic.com/issues/show_bug.cgi?id=8960 Maxim Fomin <maxim@maxim-fomin.ru> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |pull Component|DMD |druntime --- Comment #4 from Maxim Fomin <maxim@maxim-fomin.ru> 2013-06-13 00:38:54 PDT --- https://github.com/D-Programming-Language/druntime/pull/517 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
June 13, 2013 [Issue 8960] DMD tester: Unable to set thread priority | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrej Mitrovic | http://d.puremagic.com/issues/show_bug.cgi?id=8960 Maxim Fomin <maxim@maxim-fomin.ru> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bitworld@qq.com --- Comment #5 from Maxim Fomin <maxim@maxim-fomin.ru> 2013-06-13 00:39:50 PDT --- *** Issue 9595 has been marked as a duplicate of this issue. *** -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
Copyright © 1999-2021 by the D Language Foundation