itstats: add threadmaybackground - plan9port - [fork] Plan 9 from user space Err mx1.adamsgaard.dk 70 hgit clone git://src.adamsgaard.dk/plan9port URL:git://src.adamsgaard.dk/plan9port mx1.adamsgaard.dk 70 1Log /src/plan9port/log.gph mx1.adamsgaard.dk 70 1Files /src/plan9port/files.gph mx1.adamsgaard.dk 70 1Refs /src/plan9port/refs.gph mx1.adamsgaard.dk 70 1README /src/plan9port/file/README.md.gph mx1.adamsgaard.dk 70 1LICENSE /src/plan9port/file/LICENSE.gph mx1.adamsgaard.dk 70 i--- Err mx1.adamsgaard.dk 70 1commit 7f6458b045e04b97dd06b3171ac67e9ecde32429 /src/plan9port/commit/7f6458b045e04b97dd06b3171ac67e9ecde32429.gph mx1.adamsgaard.dk 70 1parent ac487c754e009b0f3c01c2a8ad5bda2143da4a6b /src/plan9port/commit/ac487c754e009b0f3c01c2a8ad5bda2143da4a6b.gph mx1.adamsgaard.dk 70 hAuthor: Russ Cox URL:mailto:rsc@swtch.com mx1.adamsgaard.dk 70 iDate: Tue, 5 Jan 2021 23:35:33 -0500 Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 istats: add threadmaybackground Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 iDiffstat: Err mx1.adamsgaard.dk 70 i M src/cmd/devdraw/mac-screen.m | 5 ++++- Err mx1.adamsgaard.dk 70 i M src/cmd/draw/stats.c | 6 ++++++ Err mx1.adamsgaard.dk 70 i M src/cmd/sam/cmd.c | 70 ++++++++++++++++---------------- Err mx1.adamsgaard.dk 70 i M src/cmd/sam/parse.h | 6 ++++-- Err mx1.adamsgaard.dk 70 i M src/cmd/sam/sam.h | 2 -- Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 i5 files changed, 49 insertions(+), 40 deletions(-) Err mx1.adamsgaard.dk 70 i--- Err mx1.adamsgaard.dk 70 1diff --git a/src/cmd/devdraw/mac-screen.m b/src/cmd/devdraw/mac-screen.m /src/plan9port/file/src/cmd/devdraw/mac-screen.m.gph mx1.adamsgaard.dk 70 it@@ -238,11 +238,14 @@ rpc_attach(Client *c, char *label, char *winsize) Err mx1.adamsgaard.dk 70 i char *s; Err mx1.adamsgaard.dk 70 i NSArray *allDevices; Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 i- const NSWindowStyleMask Winstyle = NSWindowStyleMaskTitled Err mx1.adamsgaard.dk 70 i+ NSWindowStyleMask Winstyle = NSWindowStyleMaskTitled Err mx1.adamsgaard.dk 70 i | NSWindowStyleMaskClosable Err mx1.adamsgaard.dk 70 i | NSWindowStyleMaskMiniaturizable Err mx1.adamsgaard.dk 70 i | NSWindowStyleMaskResizable; Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 i+ if(label == nil || *label == '\0') Err mx1.adamsgaard.dk 70 i+ Winstyle &= ~NSWindowStyleMaskTitled; Err mx1.adamsgaard.dk 70 i+ Err mx1.adamsgaard.dk 70 i s = winsize; Err mx1.adamsgaard.dk 70 i sr = [[NSScreen mainScreen] frame]; Err mx1.adamsgaard.dk 70 i r = [[NSScreen mainScreen] visibleFrame]; Err mx1.adamsgaard.dk 70 1diff --git a/src/cmd/draw/stats.c b/src/cmd/draw/stats.c /src/plan9port/file/src/cmd/draw/stats.c.gph mx1.adamsgaard.dk 70 it@@ -675,6 +675,12 @@ keyboardthread(void *v) Err mx1.adamsgaard.dk 70 i void machproc(void*); Err mx1.adamsgaard.dk 70 i void updateproc(void*); Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 i+int Err mx1.adamsgaard.dk 70 i+threadmaybackground(void) Err mx1.adamsgaard.dk 70 i+{ Err mx1.adamsgaard.dk 70 i+ return 1; Err mx1.adamsgaard.dk 70 i+} Err mx1.adamsgaard.dk 70 i+ Err mx1.adamsgaard.dk 70 i void Err mx1.adamsgaard.dk 70 i threadmain(int argc, char *argv[]) Err mx1.adamsgaard.dk 70 i { Err mx1.adamsgaard.dk 70 1diff --git a/src/cmd/sam/cmd.c b/src/cmd/sam/cmd.c /src/plan9port/file/src/cmd/sam/cmd.c.gph mx1.adamsgaard.dk 70 it@@ -3,41 +3,41 @@ Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 i static char linex[]="\n"; Err mx1.adamsgaard.dk 70 i static char wordx[]=" \t\n"; Err mx1.adamsgaard.dk 70 i-struct cmdtab cmdtab[]={ Err mx1.adamsgaard.dk 70 i+struct Cmdtab cmdtab[]={ Err mx1.adamsgaard.dk 70 i /* cmdc text regexp addr defcmd defaddr count token fn */ Err mx1.adamsgaard.dk 70 i- '\n', 0, 0, 0, 0, aDot, 0, 0, nl_cmd, Err mx1.adamsgaard.dk 70 i- 'a', 1, 0, 0, 0, aDot, 0, 0, a_cmd, Err mx1.adamsgaard.dk 70 i- 'b', 0, 0, 0, 0, aNo, 0, linex, b_cmd, Err mx1.adamsgaard.dk 70 i- 'B', 0, 0, 0, 0, aNo, 0, linex, b_cmd, Err mx1.adamsgaard.dk 70 i- 'c', 1, 0, 0, 0, aDot, 0, 0, c_cmd, Err mx1.adamsgaard.dk 70 i- 'd', 0, 0, 0, 0, aDot, 0, 0, d_cmd, Err mx1.adamsgaard.dk 70 i- 'D', 0, 0, 0, 0, aNo, 0, linex, D_cmd, Err mx1.adamsgaard.dk 70 i- 'e', 0, 0, 0, 0, aNo, 0, wordx, e_cmd, Err mx1.adamsgaard.dk 70 i- 'f', 0, 0, 0, 0, aNo, 0, wordx, f_cmd, Err mx1.adamsgaard.dk 70 i- 'g', 0, 1, 0, 'p', aDot, 0, 0, g_cmd, Err mx1.adamsgaard.dk 70 i- 'i', 1, 0, 0, 0, aDot, 0, 0, i_cmd, Err mx1.adamsgaard.dk 70 i- 'k', 0, 0, 0, 0, aDot, 0, 0, k_cmd, Err mx1.adamsgaard.dk 70 i- 'm', 0, 0, 1, 0, aDot, 0, 0, m_cmd, Err mx1.adamsgaard.dk 70 i- 'n', 0, 0, 0, 0, aNo, 0, 0, n_cmd, Err mx1.adamsgaard.dk 70 i- 'p', 0, 0, 0, 0, aDot, 0, 0, p_cmd, Err mx1.adamsgaard.dk 70 i- 'q', 0, 0, 0, 0, aNo, 0, 0, q_cmd, Err mx1.adamsgaard.dk 70 i- 'r', 0, 0, 0, 0, aDot, 0, wordx, e_cmd, Err mx1.adamsgaard.dk 70 i- 's', 0, 1, 0, 0, aDot, 1, 0, s_cmd, Err mx1.adamsgaard.dk 70 i- 't', 0, 0, 1, 0, aDot, 0, 0, m_cmd, Err mx1.adamsgaard.dk 70 i- 'u', 0, 0, 0, 0, aNo, 2, 0, u_cmd, Err mx1.adamsgaard.dk 70 i- 'v', 0, 1, 0, 'p', aDot, 0, 0, g_cmd, Err mx1.adamsgaard.dk 70 i- 'w', 0, 0, 0, 0, aAll, 0, wordx, w_cmd, Err mx1.adamsgaard.dk 70 i- 'x', 0, 1, 0, 'p', aDot, 0, 0, x_cmd, Err mx1.adamsgaard.dk 70 i- 'y', 0, 1, 0, 'p', aDot, 0, 0, x_cmd, Err mx1.adamsgaard.dk 70 i- 'X', 0, 1, 0, 'f', aNo, 0, 0, X_cmd, Err mx1.adamsgaard.dk 70 i- 'Y', 0, 1, 0, 'f', aNo, 0, 0, X_cmd, Err mx1.adamsgaard.dk 70 i- '!', 0, 0, 0, 0, aNo, 0, linex, plan9_cmd, Err mx1.adamsgaard.dk 70 i- '>', 0, 0, 0, 0, aDot, 0, linex, plan9_cmd, Err mx1.adamsgaard.dk 70 i- '<', 0, 0, 0, 0, aDot, 0, linex, plan9_cmd, Err mx1.adamsgaard.dk 70 i- '|', 0, 0, 0, 0, aDot, 0, linex, plan9_cmd, Err mx1.adamsgaard.dk 70 i- '=', 0, 0, 0, 0, aDot, 0, linex, eq_cmd, Err mx1.adamsgaard.dk 70 i- 'c'|0x100,0, 0, 0, 0, aNo, 0, wordx, cd_cmd, Err mx1.adamsgaard.dk 70 i- 0, 0, 0, 0, 0, 0, 0, 0 Err mx1.adamsgaard.dk 70 i+ {'\n', 0, 0, 0, 0, aDot, 0, 0, nl_cmd}, Err mx1.adamsgaard.dk 70 i+ {'a', 1, 0, 0, 0, aDot, 0, 0, a_cmd}, Err mx1.adamsgaard.dk 70 i+ {'b', 0, 0, 0, 0, aNo, 0, linex, b_cmd}, Err mx1.adamsgaard.dk 70 i+ {'B', 0, 0, 0, 0, aNo, 0, linex, b_cmd}, Err mx1.adamsgaard.dk 70 i+ {'c', 1, 0, 0, 0, aDot, 0, 0, c_cmd}, Err mx1.adamsgaard.dk 70 i+ {'d', 0, 0, 0, 0, aDot, 0, 0, d_cmd}, Err mx1.adamsgaard.dk 70 i+ {'D', 0, 0, 0, 0, aNo, 0, linex, D_cmd}, Err mx1.adamsgaard.dk 70 i+ {'e', 0, 0, 0, 0, aNo, 0, wordx, e_cmd}, Err mx1.adamsgaard.dk 70 i+ {'f', 0, 0, 0, 0, aNo, 0, wordx, f_cmd}, Err mx1.adamsgaard.dk 70 i+ {'g', 0, 1, 0, 'p', aDot, 0, 0, g_cmd}, Err mx1.adamsgaard.dk 70 i+ {'i', 1, 0, 0, 0, aDot, 0, 0, i_cmd}, Err mx1.adamsgaard.dk 70 i+ {'k', 0, 0, 0, 0, aDot, 0, 0, k_cmd}, Err mx1.adamsgaard.dk 70 i+ {'m', 0, 0, 1, 0, aDot, 0, 0, m_cmd}, Err mx1.adamsgaard.dk 70 i+ {'n', 0, 0, 0, 0, aNo, 0, 0, n_cmd}, Err mx1.adamsgaard.dk 70 i+ {'p', 0, 0, 0, 0, aDot, 0, 0, p_cmd}, Err mx1.adamsgaard.dk 70 i+ {'q', 0, 0, 0, 0, aNo, 0, 0, q_cmd}, Err mx1.adamsgaard.dk 70 i+ {'r', 0, 0, 0, 0, aDot, 0, wordx, e_cmd}, Err mx1.adamsgaard.dk 70 i+ {'s', 0, 1, 0, 0, aDot, 1, 0, s_cmd}, Err mx1.adamsgaard.dk 70 i+ {'t', 0, 0, 1, 0, aDot, 0, 0, m_cmd}, Err mx1.adamsgaard.dk 70 i+ {'u', 0, 0, 0, 0, aNo, 2, 0, u_cmd}, Err mx1.adamsgaard.dk 70 i+ {'v', 0, 1, 0, 'p', aDot, 0, 0, g_cmd}, Err mx1.adamsgaard.dk 70 i+ {'w', 0, 0, 0, 0, aAll, 0, wordx, w_cmd}, Err mx1.adamsgaard.dk 70 i+ {'x', 0, 1, 0, 'p', aDot, 0, 0, x_cmd}, Err mx1.adamsgaard.dk 70 i+ {'y', 0, 1, 0, 'p', aDot, 0, 0, x_cmd}, Err mx1.adamsgaard.dk 70 i+ {'X', 0, 1, 0, 'f', aNo, 0, 0, X_cmd}, Err mx1.adamsgaard.dk 70 i+ {'Y', 0, 1, 0, 'f', aNo, 0, 0, X_cmd}, Err mx1.adamsgaard.dk 70 i+ {'!', 0, 0, 0, 0, aNo, 0, linex, plan9_cmd}, Err mx1.adamsgaard.dk 70 i+ {'>', 0, 0, 0, 0, aDot, 0, linex, plan9_cmd}, Err mx1.adamsgaard.dk 70 i+ {'<', 0, 0, 0, 0, aDot, 0, linex, plan9_cmd}, Err mx1.adamsgaard.dk 70 i+ {'|', 0, 0, 0, 0, aDot, 0, linex, plan9_cmd}, Err mx1.adamsgaard.dk 70 i+ {'=', 0, 0, 0, 0, aDot, 0, linex, eq_cmd}, Err mx1.adamsgaard.dk 70 i+ {'c'|0x100,0, 0, 0, 0, aNo, 0, wordx, cd_cmd}, Err mx1.adamsgaard.dk 70 i+ {0, 0, 0, 0, 0, 0, 0, 0}, Err mx1.adamsgaard.dk 70 i }; Err mx1.adamsgaard.dk 70 i Cmd *parsecmd(int); Err mx1.adamsgaard.dk 70 i Addr *compoundaddr(void); Err mx1.adamsgaard.dk 70 it@@ -402,7 +402,7 @@ Cmd * Err mx1.adamsgaard.dk 70 i parsecmd(int nest) Err mx1.adamsgaard.dk 70 i { Err mx1.adamsgaard.dk 70 i int i, c; Err mx1.adamsgaard.dk 70 i- struct cmdtab *ct; Err mx1.adamsgaard.dk 70 i+ Cmdtab *ct; Err mx1.adamsgaard.dk 70 i Cmd *cp, *ncp; Err mx1.adamsgaard.dk 70 i Cmd cmd; Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 1diff --git a/src/cmd/sam/parse.h b/src/cmd/sam/parse.h /src/plan9port/file/src/cmd/sam/parse.h.gph mx1.adamsgaard.dk 70 it@@ -33,7 +33,8 @@ struct Cmd Err mx1.adamsgaard.dk 70 i #define ctext g.text Err mx1.adamsgaard.dk 70 i #define caddr g.addr Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 i-extern struct cmdtab{ Err mx1.adamsgaard.dk 70 i+typedef struct Cmdtab Cmdtab; Err mx1.adamsgaard.dk 70 i+struct Cmdtab { Err mx1.adamsgaard.dk 70 i ushort cmdc; /* command character */ Err mx1.adamsgaard.dk 70 i uchar text; /* takes a textual argument? */ Err mx1.adamsgaard.dk 70 i uchar regexp; /* takes a regular expression? */ Err mx1.adamsgaard.dk 70 it@@ -43,7 +44,8 @@ extern struct cmdtab{ Err mx1.adamsgaard.dk 70 i uchar count; /* takes a count e.g. s2/// */ Err mx1.adamsgaard.dk 70 i char *token; /* takes text terminated by one of these */ Err mx1.adamsgaard.dk 70 i int (*fn)(File*, Cmd*); /* function to call with parse tree */ Err mx1.adamsgaard.dk 70 i-}cmdtab[]; Err mx1.adamsgaard.dk 70 i+}; Err mx1.adamsgaard.dk 70 i+extern Cmdtab cmdtab[]; Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 i enum Defaddr{ /* default addresses */ Err mx1.adamsgaard.dk 70 i aNo, Err mx1.adamsgaard.dk 70 1diff --git a/src/cmd/sam/sam.h b/src/cmd/sam/sam.h /src/plan9port/file/src/cmd/sam/sam.h.gph mx1.adamsgaard.dk 70 it@@ -37,7 +37,6 @@ typedef struct Address Address; Err mx1.adamsgaard.dk 70 i typedef struct Block Block; Err mx1.adamsgaard.dk 70 i typedef struct Buffer Buffer; Err mx1.adamsgaard.dk 70 i typedef struct Disk Disk; Err mx1.adamsgaard.dk 70 i-typedef struct Discdesc Discdesc; Err mx1.adamsgaard.dk 70 i typedef struct File File; Err mx1.adamsgaard.dk 70 i typedef struct List List; Err mx1.adamsgaard.dk 70 i typedef struct Range Range; Err mx1.adamsgaard.dk 70 it@@ -342,7 +341,6 @@ void warn_S(Warn, String*); Err mx1.adamsgaard.dk 70 i int whichmenu(File*); Err mx1.adamsgaard.dk 70 i void writef(File*); Err mx1.adamsgaard.dk 70 i Posn writeio(File*); Err mx1.adamsgaard.dk 70 i-Discdesc *Dstart(void); Err mx1.adamsgaard.dk 70 i Err mx1.adamsgaard.dk 70 i extern Rune samname[]; /* compiler dependent */ Err mx1.adamsgaard.dk 70 i extern Rune *left[]; Err mx1.adamsgaard.dk 70 .