[00:27:51] --- reuteras has become available [00:42:31] --- Russ has left: Disconnected [00:43:02] --- Russ has become available [01:48:32] --- shadow@gmail.com/owl7F90CC8C has left [02:43:12] --- Russ has left: Disconnected [03:53:13] --- jaltman has left: Replaced by new connection [03:53:14] --- jaltman has become available [03:53:26] --- Jeffrey Altman has left: Replaced by new connection [03:53:29] --- Jeffrey Altman has become available [04:53:18] --- jaltman has left: Replaced by new connection [04:53:19] --- jaltman has become available [04:53:25] --- Jeffrey Altman has left: Replaced by new connection [04:53:25] --- Jeffrey Altman has become available [06:10:42] --- jaltman has left: Disconnected [06:10:50] --- jaltman has become available [06:13:32] --- Derrick Brashear has become available [06:37:13] --- matt has become available [07:06:41] --- Derrick Brashear has left [07:10:55] --- deason has become available [07:32:32] --- jaltman has left: Replaced by new connection [07:32:33] --- jaltman has become available [07:33:19] --- jaltman has left: Disconnected [07:33:20] --- Derrick Brashear has become available [07:38:28] --- jaltman has become available [07:47:55] --- reuteras has left [07:52:06] --- kaj has become available [08:03:38] --- pod has become available [08:15:19] So, my recollection is that on at least some versions of Linux, we don't _get_ to return an error from close(2); only the kernel does, which kind of sucked. Maybe they fixed that. IMHO it is fine for close(2) to return EDQUOT or ENOSPC as appropriate, and applications that care and don't check for that have had 20 years to get with the program. [08:16:05] they fixed that. kinda. [09:02:00] --- shadow@gmail.com/owl55758F1A has become available [09:08:32] --- Derrick Brashear has left [09:52:55] --- mattjsm has become available [10:33:42] --- jaltman has left: Disconnected [10:33:50] --- jaltman has become available [11:17:32] that is an optional behavior. in this case, is it realistic that this return would indicate a recoverable condition? [11:19:01] what'd i miss? [11:19:18] sorry, if MUTEX_DESTROY returns EBUSY [11:19:40] the mutex is held. it's very recoverable. wait. [11:19:49] when it's done being held, destroy it [11:19:55] why is it held? we're shutting down a service [11:20:06] if it's held, stop shutting down the service [11:20:19] if someone is blocking in a call with it held, hey, you're gonna crash [11:20:30] well, ^stop^pause [11:20:42] but basically, stop shutting down the service until it's no longer in use [11:21:01] my only point is it should be handled. even if by assert [11:21:21] I think this indicates a more serious problem. it would be -ok- to delay briefly, but not for long--but assert, sure, that's appropriate [11:21:51] well, with the current code, it should never happen [11:21:52] will send that [11:21:55] so assert is fine [11:22:06] we should continue to structure this use so that it will never happen :) [11:22:18] refcount the service properly. [11:23:21] effectively [11:25:07] I wonder if MUTEX_DESTROY will always map to something to a return code--so long as that's true, assert is fine [11:25:19] er, with a [11:34:05] --- Russ has become available [12:32:19] mattjsm: hows it going? [12:33:41] Trying to figure out how "typedef struct vnode vnode_t;" in sys/vnode.h has two or more data types in declaration specifiers. Fixed the mutex stuff simple enough. Reading failures. [12:40:40] --- jaltman has left: Disconnected [12:41:33] mattjsm: cool [12:41:34] --- jaltman has become available [12:42:34] don't supposed we #defined vnode_t somewhere... [12:43:01] src/config/param.nbsd50.h:#define vnode_t struct vnode [12:43:08] "fail" [12:43:10] whoops :) [12:43:51] can't believe I missed that. :( [12:44:19] no big deal--keep swotting [12:44:26] i guessed. "grep vnode_t src/config/*" immediately answered "yes" [12:44:50] telling: my cwd in all my open xterms that aren't where i am typing this at you are in the top of openafs git checkouts [14:39:02] --- mattjsm has left [15:16:10] Of course, that should really be a typedef, not a #define [15:18:55] it's just cruft [15:21:24] Yeah. My favourite was UKERNEL's acquisition of the letter 'u' with a #define u [15:24:41] i snarked about that in the workshop jmuc while your talk was running [15:25:07] What was your snark? Remember my connectivity was ... poor whilst my talk ran. [15:25:39] i don't remember. pretty sure it was a pun on "u" as leetspeak for "you" [15:31:39] we'll they aren't the only ones. i name no names, but something rxk5 had to link with a lot has or had a union 'u' that seemed just designed to trip the #define [15:31:50] Heimdal [15:32:27] in a header. blech [15:32:30] Love uses the convention that where a structure contains something that you'd really like to be an anonymous union, you stick it in a union 'u'. [15:33:18] kind of the fault of C as well, but... [15:34:06] Well, Love's "union u" doesn't exist outside of the scope of the structure it's defined in. It just gets upset when "u" really means something different. [15:34:26] yes, that's true. [15:42:24] --- phalenor has left [15:46:24] --- kula has left [15:46:24] --- steven.jenkins has left [15:47:08] --- steven.jenkins has become available [15:47:53] --- jaltman has left: Disconnected [15:50:53] --- dwbotsch has left [15:51:47] --- dwbotsch has become available [15:52:25] --- phalenor has become available [15:55:08] --- kula has become available [16:19:38] --- deason has left [16:48:36] --- Kevin Sumner has left [16:49:42] --- Kevin Sumner has become available [17:08:25] --- jaltman has become available [18:24:26] --- deason has become available [18:54:16] mattjsm: push to github? (thx) [18:54:49] (nm, you did--cool) [18:57:51] --- matt has left [19:11:08] --- Russ has left: Disconnected [19:29:46] --- Russ has become available [20:04:43] --- jaltman has left: Disconnected [21:08:13] --- kaj has left [21:13:35] --- jaltman has become available [21:17:31] --- kaj has become available [21:25:50] --- deason has left [21:29:54] --- Born Fool has become available [21:58:30] --- Born Fool has left [22:08:20] --- kaj has left [22:08:21] --- kaj has become available [22:18:52] --- reuteras has become available [23:21:34] --- kaj has left [23:21:38] --- kaj has become available