7
7
"io"
8
8
"os"
9
9
"sync"
10
- "time"
11
10
12
11
"github.com/tetratelabs/wazero/api"
13
12
"golang.org/x/sys/windows"
@@ -31,8 +30,6 @@ type vfsShm struct {
31
30
sync.Mutex
32
31
}
33
32
34
- var _ blockingSharedMemory = & vfsShm {}
35
-
36
33
func (s * vfsShm ) Close () error {
37
34
// Unmap regions.
38
35
for _ , r := range s .regions {
@@ -46,19 +43,11 @@ func (s *vfsShm) Close() error {
46
43
47
44
func (s * vfsShm ) shmOpen () _ErrorCode {
48
45
if s .File == nil {
49
- path , err := windows .UTF16PtrFromString (s .path )
50
- if err != nil {
51
- return _CANTOPEN
52
- }
53
- h , err := windows .CreateFile (path ,
54
- windows .GENERIC_READ | windows .GENERIC_WRITE ,
55
- windows .FILE_SHARE_READ | windows .FILE_SHARE_WRITE ,
56
- nil , windows .OPEN_ALWAYS ,
57
- windows .FILE_ATTRIBUTE_NORMAL | windows .FILE_FLAG_OVERLAPPED , 0 )
46
+ f , err := os .OpenFile (s .path , os .O_RDWR | os .O_CREATE , 0666 )
58
47
if err != nil {
59
48
return _CANTOPEN
60
49
}
61
- s .File = os . NewFile ( uintptr ( h ), s . path )
50
+ s .File = f
62
51
}
63
52
if s .fileLock {
64
53
return _OK
@@ -72,7 +61,7 @@ func (s *vfsShm) shmOpen() _ErrorCode {
72
61
return _IOERR_SHMOPEN
73
62
}
74
63
}
75
- rc := osReadLock (s .File , _SHM_DMS , 1 , time . Millisecond )
64
+ rc := osReadLock (s .File , _SHM_DMS , 1 , 0 )
76
65
s .fileLock = rc == _OK
77
66
return rc
78
67
}
@@ -140,11 +129,6 @@ func (s *vfsShm) shmMap(ctx context.Context, mod api.Module, id, size int32, ext
140
129
}
141
130
142
131
func (s * vfsShm ) shmLock (offset , n int32 , flags _ShmFlag ) (rc _ErrorCode ) {
143
- var timeout time.Duration
144
- if s .blocking {
145
- timeout = time .Millisecond
146
- }
147
-
148
132
switch {
149
133
case flags & _SHM_LOCK != 0 :
150
134
defer s .shmAcquire (& rc )
@@ -156,9 +140,9 @@ func (s *vfsShm) shmLock(offset, n int32, flags _ShmFlag) (rc _ErrorCode) {
156
140
case flags & _SHM_UNLOCK != 0 :
157
141
return osUnlock (s .File , _SHM_BASE + uint32 (offset ), uint32 (n ))
158
142
case flags & _SHM_SHARED != 0 :
159
- return osReadLock (s .File , _SHM_BASE + uint32 (offset ), uint32 (n ), timeout )
143
+ return osReadLock (s .File , _SHM_BASE + uint32 (offset ), uint32 (n ), 0 )
160
144
case flags & _SHM_EXCLUSIVE != 0 :
161
- return osWriteLock (s .File , _SHM_BASE + uint32 (offset ), uint32 (n ), timeout )
145
+ return osWriteLock (s .File , _SHM_BASE + uint32 (offset ), uint32 (n ), 0 )
162
146
default :
163
147
panic (util .AssertErr ())
164
148
}
@@ -189,7 +173,3 @@ func (s *vfsShm) shmUnmap(delete bool) {
189
173
os .Remove (s .path )
190
174
}
191
175
}
192
-
193
- func (s * vfsShm ) shmEnableBlocking (block bool ) {
194
- s .blocking = block
195
- }
0 commit comments