HI,

Oh, by the way, I forgot to mention that the function
gmtime should be replaced by the thread-safe version
called gmtime_r, which has signature:
  struct tm *gmtime_r(cont time_t *clock, struct tm *result)

Ok, I see why you need the length.

On Tue, 28 Dec 2004, Elisabeth Gloria wrote:

> Hi David,
>  
> OK, please consider following changed code.
> I accept you criticism concerning thread safe issue.
> Concerning 'len', see comments inthe edge of the function.
> 
> typedef struct snmp_data_and_time_s {
>   unsigned short year;
>   unsigned char  month;
>   unsigned char  day;
>   unsigned char  hour;
>   unsigned char  minutes;
>   unsigned char  seconds;
>   unsigned char  deci_seconds;
>   unsigned char  direction_from_UTC;
>   unsigned char  hours_from_UTC;
>   unsigned char  minutes_from_UTC;
> } DT_T;
>  
> size_t AGUTIL_get_date_and_time (time_t * tv,
>                                  DT_T * dtt)
> {
>   unsigned short iday;
>   struct tm * tm_data = gmtime(tv);
>   iday = tm_data->tm_year + 1900;
>   dtt->year = htons(iday);
>   dtt->month = 1 + tm_data->tm_mon;
>   dtt->day = tm_data->tm_mday;
>   dtt->hour = tm_data->tm_hour;
>   dtt->minutes = tm_data->tm_min;
>   dtt->seconds = tm_data->tm_sec;
>   dtt->deci_seconds = 0;
> #if 1 /* I know only localtime */ 
>   return 8;
> #else /* if I know not only localtome */
>   /* Calculate direction_from_UTC, hours_from_UTC & minutes_from_UTC */
>   return 11;
> #endif
> }
> 
> Regards, Beth
> 
> "David T. Perkins" wrote:
> HI,
> 
> Your example below is not thread-safe. I suggest that you
> change it to pass in a pointer to a place to store the
> result instead of using static "dtt" in the function
> (and remove the "len" argument, since it is not needed).
> 
> That is, change the function signature to:
> 
> DT_T *AGUTIL_get_date_and_time(DT_T *buf, time_t *tv) 
> 
> By the way, even if yout program is not using threads,
> it's a good thing to write all of your code to be
> thread-safe, since someone else may want to use it
> in a threaded environment, and if a signal handler
> gets control, you may have the same issues as with
> threading.
> 
> 
> 
> 
> ---------------------------------
> Find local movie times and trailers on Yahoo! Movies.
> 
Regards,
/david t. perkins



-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now. 
http://productguide.itmanagersjournal.com/
_______________________________________________
Net-snmp-coders mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/net-snmp-coders

Reply via email to