Imported Upstream version 5.14.0.116

Former-commit-id: a1060d06ad743429ccc16477092659123892e701
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2018-06-01 08:44:40 +00:00
parent 87382fcb2d
commit f4dfa680ce
40 changed files with 52 additions and 47 deletions

View File

@ -37,6 +37,7 @@ using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security.Permissions;
using System.Threading;
using System.Threading.Tasks;
namespace System.IO {
[DefaultEvent("Changed")]
@ -114,7 +115,7 @@ namespace System.IO {
void InitWatcher ()
{
lock (lockobj) {
if (watcher != null)
if (watcher_handle != null)
return;
string managed = Environment.GetEnvironmentVariable ("MONO_MANAGED_WATCHER");
@ -510,17 +511,17 @@ namespace System.IO {
case FileAction.Added:
lastData.Name = filename;
lastData.ChangeType = WatcherChangeTypes.Created;
OnCreated (new FileSystemEventArgs (WatcherChangeTypes.Created, path, filename));
Task.Run (() => OnCreated (new FileSystemEventArgs (WatcherChangeTypes.Created, path, filename)));
break;
case FileAction.Removed:
lastData.Name = filename;
lastData.ChangeType = WatcherChangeTypes.Deleted;
OnDeleted (new FileSystemEventArgs (WatcherChangeTypes.Deleted, path, filename));
Task.Run (() => OnDeleted (new FileSystemEventArgs (WatcherChangeTypes.Deleted, path, filename)));
break;
case FileAction.Modified:
lastData.Name = filename;
lastData.ChangeType = WatcherChangeTypes.Changed;
OnChanged (new FileSystemEventArgs (WatcherChangeTypes.Changed, path, filename));
Task.Run (() => OnChanged (new FileSystemEventArgs (WatcherChangeTypes.Changed, path, filename)));
break;
case FileAction.RenamedOldName:
if (renamed != null) {
@ -536,7 +537,8 @@ namespace System.IO {
if (renamed == null) {
renamed = new RenamedEventArgs (WatcherChangeTypes.Renamed, path, "", filename);
}
OnRenamed (renamed);
var renamed_ref = renamed;
Task.Run (() => OnRenamed (renamed_ref));
renamed = null;
break;
default: