[ofw] [patch][opensm] Fix for win8 assert

Smith, Stan stan.smith at intel.com
Wed May 25 17:16:55 PDT 2011


Upon further consideration, since Windows does not support line-buffered mode (flush on the occurrence of <newline> in the stream), why do we even bother with the setvbuf() call?
Why not let Windows stdio do it's default setup and skip the setvbuf() call?
In other words, how is ' setvbuf(stdout, NULL, _IOLBF, 1024)' advantageous in the Windows environment?


>-----Original Message-----
>From: Fab Tillier [mailto:ftillier at microsoft.com]
>Sent: Wednesday, May 25, 2011 1:29 PM
>To: Smith, Stan; Alex Naslednikov; ofw at lists.openfabrics.org
>Cc: Galina Tcharny; OpenSM
>Subject: RE: [ofw] [patch][opensm] Fix for win8 assert
>
>I tried to look up (non-MSDN) documentation for setvbuf, and I can't find anything that would indicate that _IOLBF with a size of zero would
>do anything other than _IONBF (line buffering with a buffer size of zero seems like not buffering, no?)
>
>If you want the default buffers size, why not use BUFSIZ?  That seems like it would achieve actual line buffering, using the default buffer.
>
>-Fab
>
>Smith, Stan wrote on Mon, 23 May 2011 at 11:58:05
>
>> Hello,
>>   What is the logic behind a buffer size of 1024?
>> Since this is shared code (Linux & Windows) the change should be identified
>> as Windows specific; as in
>>
>> #ifdef __WIN__
>> 	setvbuf(stdout, NULL, _IOLBF, 1024);
>> #else
>> 	/* force stdout to be line-buffered */
>> 	setvbuf(stdout, NULL, _IOLBF, 0);
>> #endif
>>
>>> -----Original Message----- From: ofw-bounces at lists.openfabrics.org
>>> [mailto:ofw- bounces at lists.openfabrics.org] On Behalf Of Alex
>>> Naslednikov Sent: Sunday, May 22, 2011 4:43 AM To:
>>> ofw at lists.openfabrics.org Cc: Galina Tcharny; OpenSM Subject: [ofw]
>>> [patch][opensm] Fix for win8 assert
>>>
>>> [opensm] fix win8 assert (2<=size<=INT_MAX): setvbuf size param change
>>> from 0 to 1024 Signed-off by: Galina Tcharny (galina at mellanox.co.il)
>>> Index: B:/users/xalex/MLNX_VPI_trunk/ulp/opensm/user/opensm/main.c
>>> ========================================================= ==========
>>> --- B:/users/xalex/MLNX_VPI_trunk/ulp/opensm/user/opensm/main.c
>>> 	(revision 8023) +++
>>> B:/users/xalex/MLNX_VPI_trunk/ulp/opensm/user/opensm/main.c 	(revision
>>> 8024) @@ -692,7 +692,7 @@ 	};
>>>
>>> 	/* force stdout to be line-buffered */
>>> -	setvbuf(stdout, NULL, _IOLBF, 0);
>>> +	setvbuf(stdout, NULL, _IOLBF, 1024);
>>>
>>> 	/* Make sure that the opensm and complib were compiled using
>>> 	   same modes (debug/free) */
>>>
>>> Alexander (XaleX) Naslednikov
>>> SW Networking Team
>>> Mellanox Technologies
>>>
>>>
>>> _______________________________________________
>>> ofw mailing list
>>> ofw at lists.openfabrics.org
>>> http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw
>> _______________________________________________
>> ofw mailing list
>> ofw at lists.openfabrics.org
>> http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw



More information about the ofw mailing list