Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
J
jacobsa-fuse
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
jacobsa-fuse
Commits
4de334e0
Commit
4de334e0
authored
Jul 24, 2015
by
Aaron Jacobs
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed a bug related to EINTR.
parent
816f77d7
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
18 additions
and
6 deletions
+18
-6
connection.go
connection.go
+18
-6
No files found.
connection.go
View file @
4de334e0
...
...
@@ -232,15 +232,27 @@ func (c *Connection) readMessage() (m *buffer.InMessage, err error) {
err
=
m
.
Init
(
c
.
wrapped
.
Dev
)
c
.
wrapped
.
Rio
.
RUnlock
()
if
err
!=
nil
{
c
.
destroyInMessage
(
m
)
m
=
nil
// Special case: ENODEV means fuse has hung up.
if
pe
,
ok
:=
err
.
(
*
os
.
PathError
);
ok
&&
pe
.
Err
==
syscall
.
ENODEV
{
// Special cases:
//
// * ENODEV means fuse has hung up.
//
// * EINTR means we should try again. (This seems to happen often on
// OS X, cf. http://golang.org/issue/11180)
//
if
pe
,
ok
:=
err
.
(
*
os
.
PathError
);
ok
{
switch
pe
.
Err
{
case
syscall
.
ENODEV
:
err
=
io
.
EOF
case
syscall
.
EINTR
:
err
=
nil
continue
}
}
if
err
!=
nil
{
c
.
destroyInMessage
(
m
)
m
=
nil
return
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment