Are the OSS API functions fully re-entrant and thread-safe?

Yes. However, when using the OSS API functions in multiple simultaneous threads, you have to either serialize access to the ossGlobal structure or keep a separate unshared copy of the global environment structure (i.e. ossGlobal) in each thread. If you choose to keep a separate copy of the ossGlobal structure in each thread, you must call ossinit() and ossterm() from within each thread. To learn how to create a copy of OssGlobal, see ossDupWorld(). Additionally if you are not running on Windows, you must specify the runtime flag NOTRAPPING by calling the ossSetFlags() function to achieve thread-safety. For example, UNIX platform users will have to specify this flag if running multiple simultaneous threads. Note that if you are using release 8.2.0 or later of the OSS ASN.1 Tools for C, NOTRAPPING is the default. Prior to release 8.2.0, the default behavior of the OSS runtime was to trap signals.

The samples included with some of the Knowledge Center answers are meant for your general understanding of the OSS products. Different versions of the products might produce slightly different outputs. Consult the products documentation and samples for the most up-to-date products information and code examples.

Contact Support
contact Our office hours
24 hours/day, 7 days/week

  • Phone: 1-888-OSS-2761 (USA and Canada)
  • Phone: 1-732-302-9669 (International)
  • Fax: 1-732-302-0023
  • Email:
Free Trial

Test drive the OSS Nokalva ASN.1, LTE, and XML Tools now! Your trial includes complete software, documentation, sample programs, free 24x7 technical support and more.

Learn ASN.1
Learn ASN.1

Our expert personnel can help you learn ASN.1!

We offer 4-day ASN.1 courses at our headquarters or your premises.