File: mount-osx-error-init.seq

package info (click to toggle)
golang-github-anacrolix-fuse 0.3.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,000 kB
  • sloc: makefile: 5; sh: 3
file content (32 lines) | stat: -rw-r--r-- 1,179 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
seqdiag {
  app;
  fuse [label="bazil.org/fuse"];
  wait [label="callMount\nhelper goroutine"];
  mount_osxfusefs;
  kernel;

  app -> fuse [label="Mount"];
  fuse -> kernel [label="open /dev/osxfuseN"];
  fuse -> mount_osxfusefs [label="spawn, pass fd"];
  fuse -> wait [label="goroutine", note="blocks on cmd.Wait"];
  app <-- fuse [label="Mount returns"];

  mount_osxfusefs -> kernel [label="mount(2)"];

  app -> fuse [label="fs.Serve"];
  fuse => kernel [label="read /dev/osxfuseN fd", note="starts with InitRequest,\nalso seen before mount exits:\ntwo StatfsRequest calls"];
  fuse -> app [label="Init"];
  fuse <-- app [color=red];
  fuse -> kernel [label="write /dev/osxfuseN fd", color=red];
  fuse <-- kernel;

  mount_osxfusefs <-- kernel [label="mount(2) returns", color=red];
  wait <<-- mount_osxfusefs [diagonal, label="exit", color=red];
  app <<-- wait [diagonal, label="mount has failed,\nclose Conn.Ready", color=red];

  // actually triggers before above
  fuse <<-- kernel [diagonal, label="/dev/osxfuseN EOF"];
  app <-- fuse [label="fs.Serve returns"];
  ... conn.MountError != nil, so it was was never mounted ...
  ... call conn.Close to clean up ...
}