I find the man page cryptic, but the following discussion helps understand the 
problems
that can happen when tzset() is not called:

http://stackoverflow.com/questions/19170721/real-time-awareness-of-timezone-change-in-localtime-vs-localtime-r

Will call tzset() just before localtime_r.

Mathi.

----- anders.wid...@ericsson.com wrote:

> Looked a bit further into tzset(), and from what I can see, this 
> function is safe to call in a multi-threaded program:
> 
> http://www.gnu.org/software/libc/manual/html_node/Time-Zone-Functions.html
> 
> So we could actually place the call to tzset() just before each call
> to 
> localtime_r(), instead of calling it in a start-up function. The
> benefit 
> would be that we handle the case when the TZ environment variable is 
> modified.
> 
> / Anders Widell
> 
> On 07/16/2014 04:29 PM, Anders Widell wrote:
> > Yes, it seems like a good idea to call tzset(), e.g. in some
> library
> > function that is always called early at start-up.
> >
> > / Anders Widell
> >
> > On 07/16/2014 03:57 PM, Alex Jones wrote:
> >> One comment.  From the man page of localtime_r:
> >>
> >> According  to POSIX.1-2004, localtime() is required to behave as
> though
> >>           tzset(3) was called, while localtime_r() does not  have
> this
> >> require-
> >>           ment.   For  portable  code  tzset(3)  should  be  called
> before
> >> local-
> >>           time_r().
w> >>
> >> Do we need to do this?
> >>
> >> Alex
> >>
> >> On 07/16/2014 04:37 AM, mathi.naic...@oracle.com wrote:
> >>> Summary: replace localtime with thread safe localtime_r [#958]
> >>> Review request for Trac Ticket(s): #958
> >>> Peer Reviewer(s): ramesh, mahesh, hans, praveen, nagendra, alex
> >>> Pull request to: <<LIST THE PERSON WITH PUSH ACCESS HERE>>
> >>> Affected branch(es): 4.3.x, 4.4.x
> >>> Development branch: <<IF ANY GIVE THE REPO URL>>
> >>>
> >>> --------------------------------
> >>> Impacted area       Impact y/n
> >>> --------------------------------
> >>>     Docs                    n
> >>>     Build system            n
> >>>     RPM/packaging           n
> >>>     Configuration files     n
> >>>     Startup scripts         n
> >>>     SAF services            y
> >>>     OpenSAF services        y
> >>>     Core libraries          n
> >>>     Samples                 n
> >>>     Tests                   n
> >>>     Other                   n
> >>>
> >>>
> >>> Comments (indicate scope for each "y" above):
> >>> ---------------------------------------------
> >>> localtime is not thread safe and because of this, crashes have
> been
> >>> observed in multithreaded opensaf services (for eg:- a crash in
> SMFD
> >>> because logtrace uses localtime).
> >>> The patch series replaces all occurrences of localtime with
> localtime_r.
> >>>
> >>> changeset 8cbe68c97884d76c15e3e65c04c1e677402676c3
> >>> Author:   mathi.naic...@oracle.com
> >>> Date:     Wed, 16 Jul 2014 13:51:31 +0530
> >>>
> >>>   osaf: use thread safe localtime_r instead of localtime [#958]
> localtime is
> >>>   not thread safe and it can(has) cause crashes in services that
> are multi
> >>>   threaded.
> >>>
> >>> changeset 3123adbd8bd655db83216e17d33ee4ae034496f3
> >>> Author:   mathi.naic...@oracle.com
> >>> Date:     Wed, 16 Jul 2014 13:52:06 +0530
> >>>
> >>>   mds: use thread safe localtime_r instead of localtime [#958]
> localtime is
> >>>   not thread safe and it can(has) cause crashes in services that
> are multi
> >>>   threaded.
> >>>
> >>> changeset 80940ead9b9233e895a10992d45d7a1b37c2e791
> >>> Author:   mathi.naic...@oracle.com
> >>> Date:     Wed, 16 Jul 2014 13:55:09 +0530
> >>>
> >>>   amf: use thread safe localtime_r instead of localtime [#958]
> localtime is
> >>>   not thread safe and it can(has) cause crashes in services that
> are multi
> >>>   threaded.
> >>>
> >>> changeset 24833293883ba7c68b7fe1e303cadc05cf361e94
> >>> Author:   mathi.naic...@oracle.com
> >>> Date:     Wed, 16 Jul 2014 13:55:47 +0530
> >>>
> >>>   ntf: use thread safe localtime_r instead of localtime [#958]
> localtime is
> >>>   not thread safe and it can(has) cause crashes in services that
> are multi
> >>>   threaded.
> >>>
> >>> changeset facf9779833cecd83118a88527e60d235f6af6c8
> >>> Author:   mathi.naic...@oracle.com
> >>> Date:     Wed, 16 Jul 2014 13:57:46 +0530
> >>>
> >>>   plm: use thread safe localtime_r instead of localtime [#958]
> localtime is
> >>>   not thread safe and it can(has) cause crashes in services that
> are multi
> >>>   threaded.
> >>>
> >>>
> >>> Complete diffstat:
> >>> ------------------
> >>>     osaf/libs/core/common/include/logtrace.h      |  2 +-
> >>>     osaf/libs/core/common/logtrace.c              |  6 +++++-
> >>>     osaf/libs/core/mds/mds_log.c                  |  6 +++++-
> >>>     osaf/services/saf/amf/amfwdog/amf_wdog.c      |  6 +++++-
> >>>     osaf/services/saf/ntfsv/ntfs/ntfs_evt.c       |  6 +++++-
> >>>     osaf/services/saf/plmsv/plms/plms_dbg_utils.c |  6 +++++-
> >>>     osaf/tools/safntf/src/ntfclient.c             |  6 +++++-
> >>>     7 files changed, 31 insertions(+), 7 deletions(-)
> >>>
> >>>
> >>> Testing Commands:
> >>> -----------------
> >>> Start opensaf, observe timestamp wherever(flows) applicable.
> >>>
> >>> Testing, Expected Results:
> >>> --------------------------
> >>> Start opensaf, observe timestamp wherever applicable.
> >>>
> >>>
> >>> Conditions of Submission:
> >>> -------------------------
> >>> Ack from Reviewers.
> >>>
> >>> Arch      Built     Started    Linux distro
> >>> -------------------------------------------
> >>> mips        n          n
> >>> mips64      n          n
> >>> x86         n          n
> >>> x86_64      y          y
> >>> powerpc     n          n
> >>> powerpc64   n          n
> >>>
> >>>
> >>> Reviewer Checklist:
> >>> -------------------
> >>> [Submitters: make sure that your review doesn't trigger any
> checkmarks!]
> >>>
> >>>
> >>> Your checkin has not passed review because (see checked entries):
> >>>
> >>> ___ Your RR template is generally incomplete; it has too many
> blank entries
> >>>        that need proper data filled in.
> >>>
> >>> ___ You have failed to nominate the proper persons for review and
> push.
> >>>
> >>> ___ Your patches do not have proper short+long header
> >>>
> >>> ___ You have grammar/spelling in your header that is
> unacceptable.
> >>>
> >>> ___ You have exceeded a sensible line length in your
> headers/comments/text.
> >>>
> >>> ___ You have failed to put in a proper Trac Ticket # into your
> commits.
> >>>
> >>> ___ You have incorrectly put/left internal data in your
> comments/files
> >>>        (i.e. internal bug tracking tool IDs, product names etc)
> >>>
> >>> ___ You have not given any evidence of testing beyond basic build
> tests.
> >>>        Demonstrate some level of runtime or other sanity testing.
> >>>
> >>> ___ You have ^M present in some of your files. These have to be
> removed.
> >>>
> >>> ___ You have needlessly changed whitespace or added whitespace
> crimes
> >>>        like trailing spaces, or spaces before tabs.
> >>>
> >>> ___ You have mixed real technical changes with whitespace and
> other
> >>>        cosmetic code cleanup changes. These have to be separate
> commits.
> >>>
> >>> ___ You need to refactor your submission into logical chunks;
> there is
> >>>        too much content into a single commit.
> >>>
> >>> ___ You have extraneous garbage in your review (merge commits
> etc)
> >>>
> >>> ___ You have giant attachments which should never have been sent;
> >>>        Instead you should place your content in a public tree to
> be pulled.
> >>>
> >>> ___ You have too many commits attached to an e-mail; resend as
> threaded
> >>>        commits, or place in a public tree for a pull.
> >>>
> >>> ___ You have resent this content multiple times without a clear
> indication
> >>>        of what has changed between each re-send.
> >>>
> >>> ___ You have failed to adequately and individually address all of
> the
> >>>        comments and change requests that were proposed in the
> initial review.
> >>>
> >>> ___ You have a misconfigured ~/.hgrc file (i.e. username, email
> etc)
> >>>
> >>> ___ Your computer have a badly configured date and time; confusing
> the
> >>>        the threaded patch review.
> >>>
> >>> ___ Your changes affect IPC mechanism, and you don't present any
> results
> >>>        for in-service upgradability test.
> >>>
> >>> ___ Your changes affect user manual and documentation, your patch
> series
> >>>        do not contain the patch that updates the Doxygen manual.
> >>>
> >>
> ------------------------------------------------------------------------------
> >> Want fast and easy access to all the code in your enterprise? Index
> and
> >> search up to 200,000 lines of code with a free copy of Black Duck
> >> Code Sight - the same software that powers the world's largest
> code
> >> search on Ohloh, the Black Duck Open Hub! Try it now.
> >> http://p.sf.net/sfu/bds
> >> _______________________________________________
> >> Opensaf-devel mailing list
> >> Opensaf-devel@lists.sourceforge.net
> >> https://lists.sourceforge.net/lists/listinfo/opensaf-devel
> >>
> >>
> >
> >
> ------------------------------------------------------------------------------
> > Want fast and easy access to all the code in your enterprise? Index
> and
> > search up to 200,000 lines of code with a free copy of Black Duck
> > Code Sight - the same software that powers the world's largest code
> > search on Ohloh, the Black Duck Open Hub! Try it now.
> > http://p.sf.net/sfu/bds
> > _______________________________________________
> > Opensaf-devel mailing list
> > Opensaf-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/opensaf-devel
> >
> >

------------------------------------------------------------------------------
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to