Merge branch 'upstream'

Former-commit-id: 189ebc3947f517ae2c8528a80335612826539903
This commit is contained in:
Xamarin Public Jenkins (auto-signing) 2018-02-28 08:52:28 +00:00
commit 9fad6cd92c
36 changed files with 62 additions and 40 deletions

View File

@ -1 +1 @@
ceb952e3a229b6b04abaa5b97538f01813e580ae
e4b811826621e311f69263092df0e00b179fa373

View File

@ -1 +1 @@
fdfbffe66849adf184e5d9e85c7fde89cdaf8fb2
f3be6684494b4fb113573ae47af14b3825890374

View File

@ -60,6 +60,23 @@ namespace NUnit.Framework.Internal
Dictionary<Guid, TestResult> lookupTable;
// Why is CallContext used? Consider the following scenario:
//
// * say Test_A runs in Thread_1
// * Test_A spawns another Thread_2
// * Thread_1 finishes with Test_A, and moves on to Test_B
// * Thread_2 isn't done yet really, crashes and causes an unhandled exception
// * we need a way to map this unhandled exception to Test_A, although Test_B is the currently running test
//
// => what we need is some sort of "thread local" that gets inherited: when
// Thread_1 creates Thread_2, it needs to have the same "thread local" values.
// that is achieved with `CallContext`.
//
// Unfortunately, remoting isn't available on every platform (it will
// throw PlatformNotSupportedexception), thus we can't support this
// scenario. Luckily, this scenario is very rare.
Container container = null;
private static readonly string CONTEXT_KEY = "TestResultName";
public FinallyDelegate () {
@ -73,14 +90,18 @@ namespace NUnit.Framework.Internal
/* keep name in LogicalCallContext, because this will be inherited by
* Threads spawned by the test case */
var guid = Guid.NewGuid();
CallContext.SetData(CONTEXT_KEY, new Container(guid));
try {
CallContext.SetData(CONTEXT_KEY, new Container(guid));
} catch {
container = new Container (guid);
}
this.lookupTable.Add(guid, result);
this.testStack.Push(frame);
}
public void HandleUnhandledExc (Exception ex) {
Container c = (Container) CallContext.GetData(CONTEXT_KEY);
Container c = container ?? (Container) CallContext.GetData(CONTEXT_KEY);
TestResult result = this.lookupTable [c.guid];
result.RecordException(ex);
result.ThreadCrashFail = true;

View File

@ -34,7 +34,7 @@ static class Consts
// Use these assembly version constants to make code more maintainable.
//
public const string MonoVersion = "5.10.0.141";
public const string MonoVersion = "5.10.0.144";
public const string MonoCompany = "Mono development team";
public const string MonoProduct = "Mono Common Language Infrastructure";
public const string MonoCopyright = "(c) Various Mono authors";

View File

@ -1 +1 @@
027cdedf223b55ea18d0e1cc2bfe1c9bb9aa0cf5
17d71941f008b9d762ca324d866fafb74c4710da

View File

@ -1 +1 @@
ec34e84d269ff27bc4763a59725cb1f27cb2ae0c
6476109f8ed6ff211b4ea34f27d1c116d3c75109

View File

@ -1 +1 @@
969213b6cefc33120f6b55ea45da40af3be73308
0d866f89477a413e0602168cedb677538c26c5a5

View File

@ -1 +1 @@
db177403ce219d45733074c530b13fee61b9624f
8c4410a6c0c7fd0987c68314e9da660f1a09eb02

View File

@ -1 +1 @@
29812ba06b65a1a07d168ccf5dc54362284ca8ae
724ba0ca29a8f94f33c0c2b9cfa478b5513c8ad8

View File

@ -1 +1 @@
73fae5bfa8d7c4bed4e9f3d3beacb75c13a50615
84b06b604c65bfe45810b53017f3ae0faf52520a

View File

@ -1 +1 @@
bba7bcf2231753be9cc7ade2b695cda5b26c4b56
c9899b42c53f78da69acda8a88a613cca6eb8b5b

View File

@ -1 +1 @@
027cdedf223b55ea18d0e1cc2bfe1c9bb9aa0cf5
17d71941f008b9d762ca324d866fafb74c4710da

View File

@ -1 +1 @@
ec34e84d269ff27bc4763a59725cb1f27cb2ae0c
6476109f8ed6ff211b4ea34f27d1c116d3c75109

View File

@ -1 +1 @@
969213b6cefc33120f6b55ea45da40af3be73308
0d866f89477a413e0602168cedb677538c26c5a5

View File

@ -1 +1 @@
db177403ce219d45733074c530b13fee61b9624f
8c4410a6c0c7fd0987c68314e9da660f1a09eb02

View File

@ -1 +1 @@
29812ba06b65a1a07d168ccf5dc54362284ca8ae
724ba0ca29a8f94f33c0c2b9cfa478b5513c8ad8

View File

@ -1 +1 @@
73fae5bfa8d7c4bed4e9f3d3beacb75c13a50615
84b06b604c65bfe45810b53017f3ae0faf52520a

View File

@ -1 +1 @@
bba7bcf2231753be9cc7ade2b695cda5b26c4b56
c9899b42c53f78da69acda8a88a613cca6eb8b5b

View File

@ -1 +1 @@
027cdedf223b55ea18d0e1cc2bfe1c9bb9aa0cf5
17d71941f008b9d762ca324d866fafb74c4710da

View File

@ -1 +1 @@
ec34e84d269ff27bc4763a59725cb1f27cb2ae0c
6476109f8ed6ff211b4ea34f27d1c116d3c75109

View File

@ -1 +1 @@
969213b6cefc33120f6b55ea45da40af3be73308
0d866f89477a413e0602168cedb677538c26c5a5

View File

@ -1 +1 @@
db177403ce219d45733074c530b13fee61b9624f
8c4410a6c0c7fd0987c68314e9da660f1a09eb02

View File

@ -1 +1 @@
29812ba06b65a1a07d168ccf5dc54362284ca8ae
724ba0ca29a8f94f33c0c2b9cfa478b5513c8ad8

View File

@ -1 +1 @@
73fae5bfa8d7c4bed4e9f3d3beacb75c13a50615
84b06b604c65bfe45810b53017f3ae0faf52520a

View File

@ -1 +1 @@
bba7bcf2231753be9cc7ade2b695cda5b26c4b56
c9899b42c53f78da69acda8a88a613cca6eb8b5b

View File

@ -1 +1 @@
#define FULL_VERSION "explicit/e87d123"
#define FULL_VERSION "explicit/331f927"

View File

@ -358,7 +358,7 @@ sgen_workers_create_context (int generation, int num_workers)
{
static gboolean stat_inited = FALSE;
int i;
WorkerData **workers_data_ptrs = (WorkerData**)sgen_alloc_internal_dynamic (num_workers * sizeof(WorkerData*), INTERNAL_MEM_WORKER_DATA, TRUE);
WorkerData **workers_data_ptrs;
WorkerContext *context = &worker_contexts [generation];
SGEN_ASSERT (0, !context->workers_num, "We can't init the worker context for a generation twice");
@ -366,20 +366,21 @@ sgen_workers_create_context (int generation, int num_workers)
mono_os_mutex_init (&context->finished_lock);
context->generation = generation;
context->workers_num = num_workers;
context->active_workers_num = num_workers;
context->workers_num = (num_workers > SGEN_THREADPOOL_MAX_NUM_THREADS) ? SGEN_THREADPOOL_MAX_NUM_THREADS : num_workers;
context->active_workers_num = context->workers_num;
context->workers_data = (WorkerData *)sgen_alloc_internal_dynamic (sizeof (WorkerData) * num_workers, INTERNAL_MEM_WORKER_DATA, TRUE);
memset (context->workers_data, 0, sizeof (WorkerData) * num_workers);
context->workers_data = (WorkerData *)sgen_alloc_internal_dynamic (sizeof (WorkerData) * context->workers_num, INTERNAL_MEM_WORKER_DATA, TRUE);
memset (context->workers_data, 0, sizeof (WorkerData) * context->workers_num);
init_distribute_gray_queue (context);
for (i = 0; i < num_workers; ++i) {
workers_data_ptrs = (WorkerData**)sgen_alloc_internal_dynamic (context->workers_num * sizeof (WorkerData*), INTERNAL_MEM_WORKER_DATA, TRUE);
for (i = 0; i < context->workers_num; ++i) {
workers_data_ptrs [i] = &context->workers_data [i];
context->workers_data [i].context = context;
}
context->thread_pool_context = sgen_thread_pool_create_context (num_workers, thread_pool_init_func, marker_idle_func, continue_idle_func, should_work_func, (void**)workers_data_ptrs);
context->thread_pool_context = sgen_thread_pool_create_context (context->workers_num, thread_pool_init_func, marker_idle_func, continue_idle_func, should_work_func, (void**)workers_data_ptrs);
if (!stat_inited) {
mono_counters_register ("# workers finished", MONO_COUNTER_GC | MONO_COUNTER_ULONG, &stat_workers_num_finished);

Binary file not shown.

View File

@ -1 +1 @@
2b9bdbce42bec4dddd1ccf7ad5257302e9d4ca65
6861e8c7e487f592d9cde75d28413716ed786a9e

Binary file not shown.

View File

@ -1 +1 @@
8e2ff44e80d89e2160d6cab32772c269802d31f1
70cfa94fee4e4b593aad078253f95b0e2b3bc47a

Binary file not shown.

View File

@ -1 +1 @@
a0189e2b71c6f26db844c70c001d68781b01984f
89b6b84f8535aaf21d282b1715f46e521e3ab5cc

View File

@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: mono 5.10.0.141\n"
"Project-Id-Version: mono 5.10.0.144\n"
"Report-Msgid-Bugs-To: http://www.mono-project.com/Bugs\n"
"POT-Creation-Date: 2018-02-27 08:24+0000\n"
"POT-Creation-Date: 2018-02-28 08:21+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

Binary file not shown.

View File

@ -1 +1 @@
c251704b20ed06c7d9cea8d53c80dad49d580092
9f762a51921c5e8b807627a6815245c78668d2a3