Merge branch 'upstream'
Former-commit-id: d8a7791dfc27f9e60cd60dc8bcea49a0bc280d7e
This commit is contained in:
commit
89dc21ef21
@ -1 +1 @@
|
|||||||
32032351f05623ddf476bdcb57a30b529b3d2e8d
|
31a9498daf6bb155f2123b3ecd7faa579ade4c98
|
@ -1 +1 @@
|
|||||||
19a2e7c59e1e46b86ca76d5200cbc4328a92171a
|
e17288b2e852e32474aebf862e6347b06e6cd2a2
|
@ -41,7 +41,7 @@ static partial class Consts
|
|||||||
// Use these assembly version constants to make code more maintainable.
|
// Use these assembly version constants to make code more maintainable.
|
||||||
//
|
//
|
||||||
|
|
||||||
public const string MonoVersion = "6.0.0.300";
|
public const string MonoVersion = "6.0.0.302";
|
||||||
public const string MonoCompany = "Mono development team";
|
public const string MonoCompany = "Mono development team";
|
||||||
public const string MonoProduct = "Mono Common Language Infrastructure";
|
public const string MonoProduct = "Mono Common Language Infrastructure";
|
||||||
public const string MonoCopyright = "(c) Various Mono authors";
|
public const string MonoCopyright = "(c) Various Mono authors";
|
||||||
|
@ -1 +1 @@
|
|||||||
610f149d02b43843d60ea943b1dbda131da50857
|
707e0df8d36d7e873f6a93d82ff286a0e675825a
|
@ -1 +1 @@
|
|||||||
ac5a904a97698ca709eefcd4adf1163eb0018487
|
e0cfa451b476ede754a8d5bb0ecaf177b2506b98
|
@ -1 +1 @@
|
|||||||
ef3898ec0a1a2fb4899d555333cf761c9d5ec07e
|
a8e0dec34755f207498bca98116670d810e34bd7
|
Binary file not shown.
@ -1 +1 @@
|
|||||||
fc7585fb16e851b662b878b39f8e32d3018fd668
|
00060537c5a7b8b3b1b854dc6199b695e1084f0a
|
@ -1 +1 @@
|
|||||||
e393df6726ee3ea4e5f940dbb797c5f6d65cbdab
|
ef46214686b5696543af92d0c70196ba0b943a6d
|
@ -1 +1 @@
|
|||||||
ba75dd4ee877c8ff21c4dbc8dc2f4ff9684ccee3
|
1b047b44ee58aa8a884a47305868b76578a88ff3
|
@ -1 +1 @@
|
|||||||
921d504a42685c599326466181ff27a39e20ad8e
|
a1d786bde0d6c4c74526dc14a87da6a44f9279ad
|
@ -1 +1 @@
|
|||||||
610f149d02b43843d60ea943b1dbda131da50857
|
707e0df8d36d7e873f6a93d82ff286a0e675825a
|
@ -1 +1 @@
|
|||||||
ac5a904a97698ca709eefcd4adf1163eb0018487
|
e0cfa451b476ede754a8d5bb0ecaf177b2506b98
|
@ -1 +1 @@
|
|||||||
ef3898ec0a1a2fb4899d555333cf761c9d5ec07e
|
a8e0dec34755f207498bca98116670d810e34bd7
|
Binary file not shown.
@ -1 +1 @@
|
|||||||
fc7585fb16e851b662b878b39f8e32d3018fd668
|
00060537c5a7b8b3b1b854dc6199b695e1084f0a
|
@ -1 +1 @@
|
|||||||
e393df6726ee3ea4e5f940dbb797c5f6d65cbdab
|
ef46214686b5696543af92d0c70196ba0b943a6d
|
@ -1 +1 @@
|
|||||||
ba75dd4ee877c8ff21c4dbc8dc2f4ff9684ccee3
|
1b047b44ee58aa8a884a47305868b76578a88ff3
|
@ -1 +1 @@
|
|||||||
921d504a42685c599326466181ff27a39e20ad8e
|
a1d786bde0d6c4c74526dc14a87da6a44f9279ad
|
@ -1 +1 @@
|
|||||||
610f149d02b43843d60ea943b1dbda131da50857
|
707e0df8d36d7e873f6a93d82ff286a0e675825a
|
@ -1 +1 @@
|
|||||||
ac5a904a97698ca709eefcd4adf1163eb0018487
|
e0cfa451b476ede754a8d5bb0ecaf177b2506b98
|
@ -1 +1 @@
|
|||||||
ef3898ec0a1a2fb4899d555333cf761c9d5ec07e
|
a8e0dec34755f207498bca98116670d810e34bd7
|
Binary file not shown.
@ -1 +1 @@
|
|||||||
fc7585fb16e851b662b878b39f8e32d3018fd668
|
00060537c5a7b8b3b1b854dc6199b695e1084f0a
|
@ -1 +1 @@
|
|||||||
e393df6726ee3ea4e5f940dbb797c5f6d65cbdab
|
ef46214686b5696543af92d0c70196ba0b943a6d
|
@ -1 +1 @@
|
|||||||
ba75dd4ee877c8ff21c4dbc8dc2f4ff9684ccee3
|
1b047b44ee58aa8a884a47305868b76578a88ff3
|
@ -1 +1 @@
|
|||||||
921d504a42685c599326466181ff27a39e20ad8e
|
a1d786bde0d6c4c74526dc14a87da6a44f9279ad
|
@ -1 +1 @@
|
|||||||
610f149d02b43843d60ea943b1dbda131da50857
|
707e0df8d36d7e873f6a93d82ff286a0e675825a
|
@ -1 +1 @@
|
|||||||
ac5a904a97698ca709eefcd4adf1163eb0018487
|
e0cfa451b476ede754a8d5bb0ecaf177b2506b98
|
@ -1 +1 @@
|
|||||||
109ef5fa2134bda6d786295cc1092f58492f0ecf
|
7fc95be03837f157066d246f3e7ac3f2c7ced403
|
Binary file not shown.
@ -1 +1 @@
|
|||||||
fc7585fb16e851b662b878b39f8e32d3018fd668
|
00060537c5a7b8b3b1b854dc6199b695e1084f0a
|
@ -1 +1 @@
|
|||||||
e393df6726ee3ea4e5f940dbb797c5f6d65cbdab
|
ef46214686b5696543af92d0c70196ba0b943a6d
|
@ -1 +1 @@
|
|||||||
ba75dd4ee877c8ff21c4dbc8dc2f4ff9684ccee3
|
1b047b44ee58aa8a884a47305868b76578a88ff3
|
@ -1 +1 @@
|
|||||||
7dd2f3d40d447e8f4a757f77325c121f15c887f2
|
c5c13a9dfb924885908c55b62252c3cd2a543a99
|
@ -1 +1 @@
|
|||||||
#define FULL_VERSION "explicit/52f6ea1"
|
#define FULL_VERSION "explicit/fdf6490"
|
||||||
|
@ -1443,10 +1443,10 @@ distclean-generic:
|
|||||||
maintainer-clean-generic:
|
maintainer-clean-generic:
|
||||||
@echo "This command is intended for maintainers to use"
|
@echo "This command is intended for maintainers to use"
|
||||||
@echo "it deletes files that may require special tools to rebuild."
|
@echo "it deletes files that may require special tools to rebuild."
|
||||||
@CROSS_COMPILE_TRUE@test-local:
|
|
||||||
@HOST_WIN32_TRUE@test-local:
|
|
||||||
@CROSS_COMPILE_TRUE@clean-local:
|
@CROSS_COMPILE_TRUE@clean-local:
|
||||||
@HOST_WIN32_TRUE@clean-local:
|
@HOST_WIN32_TRUE@clean-local:
|
||||||
|
@CROSS_COMPILE_TRUE@test-local:
|
||||||
|
@HOST_WIN32_TRUE@test-local:
|
||||||
clean: clean-am
|
clean: clean-am
|
||||||
|
|
||||||
clean-am: clean-checkPROGRAMS clean-generic clean-libtool clean-local \
|
clean-am: clean-checkPROGRAMS clean-generic clean-libtool clean-local \
|
||||||
|
@ -43,7 +43,7 @@
|
|||||||
* - not be called concurrently (either 2+ initialize or 2+ cleanup, either initialize and cleanup)
|
* - not be called concurrently (either 2+ initialize or 2+ cleanup, either initialize and cleanup)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
typedef gint32 mono_lazy_init_t;
|
typedef volatile gint32 mono_lazy_init_t;
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
MONO_LAZY_INIT_STATUS_NOT_INITIALIZED,
|
MONO_LAZY_INIT_STATUS_NOT_INITIALIZED,
|
||||||
@ -62,21 +62,63 @@ mono_lazy_initialize (mono_lazy_init_t *lazy_init, void (*initialize) (void))
|
|||||||
|
|
||||||
status = *lazy_init;
|
status = *lazy_init;
|
||||||
|
|
||||||
|
// This barrier might be redundant with volatile.
|
||||||
|
//
|
||||||
|
// Without either, code in our caller can
|
||||||
|
// read state ahead of the call to mono_lazy_initialize,
|
||||||
|
// and ahead of the call to initialize.
|
||||||
|
//
|
||||||
|
// Recall that barriers come in pairs.
|
||||||
|
// One barrier is in mono_atomic_cas_i32 below..
|
||||||
|
// This is the other.
|
||||||
|
//
|
||||||
|
// A common case of initializing a pointer, that
|
||||||
|
// the reader dereferences, is ok,
|
||||||
|
// on most architectures (not Alpha), due to "data dependency".
|
||||||
|
//
|
||||||
|
// But if the caller is merely reading globals, that initialize writes,
|
||||||
|
// then those reads can run ahead of initialize and be incorrect.
|
||||||
|
//
|
||||||
|
// On-demand initialization is much tricker than generally understood.
|
||||||
|
//
|
||||||
|
// Strongly consider adapting:
|
||||||
|
// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2660.htm
|
||||||
|
//
|
||||||
|
// At the very bottom. After making it coop-friendly.
|
||||||
|
//
|
||||||
|
// In particular, it eliminates the barriers from the fast path.
|
||||||
|
// At the cost of a thread local access.
|
||||||
|
//
|
||||||
|
// The thread local access should be "gamed" (forced to initialize
|
||||||
|
// early on platforms that do on-demand initialization), by inserting
|
||||||
|
// an extra use early in runtime initialization. i.e. so it does not
|
||||||
|
// take any locks, and become coop-unfriendly.
|
||||||
|
//
|
||||||
|
mono_memory_read_barrier ();
|
||||||
|
|
||||||
if (status >= MONO_LAZY_INIT_STATUS_INITIALIZED)
|
if (status >= MONO_LAZY_INIT_STATUS_INITIALIZED)
|
||||||
return status == MONO_LAZY_INIT_STATUS_INITIALIZED;
|
return status == MONO_LAZY_INIT_STATUS_INITIALIZED;
|
||||||
|
|
||||||
if (status == MONO_LAZY_INIT_STATUS_INITIALIZING
|
if (status == MONO_LAZY_INIT_STATUS_INITIALIZING
|
||||||
|| mono_atomic_cas_i32 (lazy_init, MONO_LAZY_INIT_STATUS_INITIALIZING, MONO_LAZY_INIT_STATUS_NOT_INITIALIZED)
|
|| mono_atomic_cas_i32 (lazy_init, MONO_LAZY_INIT_STATUS_INITIALIZING, MONO_LAZY_INIT_STATUS_NOT_INITIALIZED)
|
||||||
!= MONO_LAZY_INIT_STATUS_NOT_INITIALIZED
|
!= MONO_LAZY_INIT_STATUS_NOT_INITIALIZED
|
||||||
) {
|
) {
|
||||||
while (*lazy_init == MONO_LAZY_INIT_STATUS_INITIALIZING)
|
while (*lazy_init == MONO_LAZY_INIT_STATUS_INITIALIZING)
|
||||||
mono_thread_info_yield ();
|
mono_thread_info_yield (); // FIXME: This is not coop-friendly.
|
||||||
|
|
||||||
g_assert (mono_atomic_load_i32 (lazy_init) >= MONO_LAZY_INIT_STATUS_INITIALIZED);
|
g_assert (mono_atomic_load_i32 (lazy_init) >= MONO_LAZY_INIT_STATUS_INITIALIZED);
|
||||||
return status == MONO_LAZY_INIT_STATUS_INITIALIZED;
|
|
||||||
|
// This result is transient. Another thread can proceed to cleanup.
|
||||||
|
// Perhaps cleanup should not be attempted, just on-demand initialization.
|
||||||
|
return *lazy_init == MONO_LAZY_INIT_STATUS_INITIALIZED;
|
||||||
}
|
}
|
||||||
|
|
||||||
initialize ();
|
initialize ();
|
||||||
|
|
||||||
mono_atomic_store_release (lazy_init, MONO_LAZY_INIT_STATUS_INITIALIZED);
|
mono_atomic_store_release (lazy_init, MONO_LAZY_INIT_STATUS_INITIALIZED);
|
||||||
|
|
||||||
|
// This result is transient. Another thread can proceed to cleanup.
|
||||||
|
// Perhaps cleanup should not be attempted, just on-demand initialization.
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BIN
po/mcs/de.gmo
BIN
po/mcs/de.gmo
Binary file not shown.
@ -1 +1 @@
|
|||||||
35858a58c9cca01515d5e56d8c2bdd27b11e3d0e
|
677dc9591de53fcfdbd708940b441191503b3496
|
BIN
po/mcs/es.gmo
BIN
po/mcs/es.gmo
Binary file not shown.
@ -1 +1 @@
|
|||||||
8247971707c68040471dabc7b3b9fc2dc05fcdb8
|
907ea4e25da95b086f1327c2357ee1e995071bd4
|
BIN
po/mcs/ja.gmo
BIN
po/mcs/ja.gmo
Binary file not shown.
@ -1 +1 @@
|
|||||||
c3eea70da1a0c2a30b11f370b77d988850744f0c
|
5dc06f534ea570b212a34a0f3d4138248208e5dd
|
@ -6,9 +6,9 @@
|
|||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: mono 6.0.0.300\n"
|
"Project-Id-Version: mono 6.0.0.302\n"
|
||||||
"Report-Msgid-Bugs-To: http://www.mono-project.com/Bugs\n"
|
"Report-Msgid-Bugs-To: http://www.mono-project.com/Bugs\n"
|
||||||
"POT-Creation-Date: 2019-06-14 08:08+0000\n"
|
"POT-Creation-Date: 2019-06-15 08:08+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
BIN
po/mcs/pt_BR.gmo
BIN
po/mcs/pt_BR.gmo
Binary file not shown.
@ -1 +1 @@
|
|||||||
d9eee91f60bd1f5c08357637bb98da1529bb8bff
|
7c8080c91e032fa76e5f088eadb2df4d784b29fe
|
Loading…
x
Reference in New Issue
Block a user