commit - 80f510c8a46b218e8cdff001049e8037bcdabe57
commit + e4d62adf03a2b2914fe9d33a3d8c50ae04cd4aea
blob - 48f85190a42c364868e75f6d0f7b7c5c1a73687f
blob + 52050ffe6fab05261e40c89d10db363439cc2b65
--- CHANGES
+++ CHANGES
+January 18, 2005
+ make src/libthread/pthread.c compile
+ add threadspawnl, fsseek.
+ add link to web interface in cvs(1).
+ remove hard-coded path in fixurls
+
January 17, 2005
thread.c tries to warn about bad pthreads on Linux
vacfs posts vacfs.basename
blob - cb2725a2ee22d042a92902b42ad5da2965d25df3
blob + 4db33491926143bd217f8197fd65dbd1f5b0dd6e
--- man/man3/9pclient.3
+++ man/man3/9pclient.3
int fsversion(CFsys *fsys, int msize, char *version, int nversion)
.PP
.B
-CFid *fsauth(CFsys *fsys, char *uname, char *aname)
+CFid* fsauth(CFsys *fsys, char *uname, char *aname)
.PP
.B
-CFid *fsattach(CFsys *fsys, CFid *afid, char *uname, char *aname)
+CFid* fsattach(CFsys *fsys, CFid *afid, char *uname, char *aname)
.PP
.B
void fssetroot(CFsys *fsys, CFid *fid)
void fsclose(CFid *fid)
.PP
.B
-CFid *fscreate(CFsys *fs, char *path, int mode, ulong perm)
+CFid* fscreate(CFsys *fs, char *path, int mode, ulong perm)
.PP
.B
CFid* fsopen(CFsys *fs, char *path, int mode)
long fswrite(CFid *fid, void *buf, long n)
.PP
.B
+vlong fsseek(CFid *Fid, vlong n, int type)
+.PP
+.B
long fsdirread(CFid *fid, Dir **d)
.PP
.B
and
.I fswrite
read and write from this offset, and update it after successful calls.
+.I Fsseek
+sets the offset; the
+.I n
+and
+.I type
+arguments are used as in
+.IR seek (3).
Calling
.I fspread
or
and
.I create
on already-established fids.
-.PP
-There is no
-.IR fsseek .
blob - 39fa53a848698fed5cb7381ed8402792ac086f2c
blob + 4212c6f3669cda6654dac7992f5ada6d4bf1d098
--- man/man3/thread.3
+++ man/man3/thread.3
threadsetname,
threadsetstate,
threadspawn,
+threadspawnl,
threadwaitchan,
yield \- thread and proc management
.SH SYNOPSIS
int nbsendul(Channel *c, ulong v)
int chanprint(Channel *c, char *fmt, ...)
.XX
+int threadspawnl(int fd[3], char *file, ...)
int threadspawn(int fd[3], char *file, char *args[])
int threadexecl(Channel *cpid, int fd[3], char *file, ...)
int threadexec(Channel *cpid, int fd[3], char *file, char *args[])
fd[2] = dup(2, -1);
.EE
.PP
-.I Threadspawn
-is like
+.I Threadspawnl
+and
+.I threadspawn
+are like
+.I threadexecl
+and
.I threadexec
-but does not replace the current thread.
-It returns the pid of the invoked program on success, or
+but do not replace the current thread.
+They return the pid of the invoked program on success, or
\-1 on error.
.PP
.I Threadwaitchan