Article ID: 2580309 - Last Review: October 11, 2011 - Revision: 1.0

FIX: An exception occurs when multiple threads call the C run-time "atexit" function at the same time in Windows Embedded CE 6.0 R3

System TipThis article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled.

On This Page

Expand all | Collapse all

SYMPTOMS

When multiple threads call the C run-time atexit function at the same time in Windows Embedded CE 6.0 R3, an exception may occur. The issue occurs when the code that calls the atexit function is not serialized or when the atexit function is inserted by the compiler.

CAUSE

The issue occurs because the C-Run time atexit function is not made thread-safe, so the memory table that the function uses is corrupted.

RESOLUTION

Software update information

A supported software update is now available from Microsoft as Windows Embedded CE 6.0 Monthly Update September 2011. In the "File information" section, the package file name contains the product version, the date, the Microsoft Knowledge Base (KB) article number, and the processor type. The package file name format is as follows: 
Product version-yymmdd-kbnnnnnn-processor type
For example, Wincepb60-110128-kb2492159-armv4i.msi is the ARMV4i Windows Embedded CE 6.0 Platform Builder fix that is documented in KB article 2492159 and that is contained in the January 2011 monthly update.

To resolve this problem immediately, download this Windows Embedded CE 6.0 Monthly Update from the following Microsoft website.

Microsoft Download Center
Windows Embedded CE 6.0 (http://www.microsoft.com/download/en/search.aspx?q=Windows%20Embedded%20CE%206.0%20Monthly%20Update)

Prerequisites

This update is supported only if all previously issued updates for this product have also been installed.

Restart requirement

After you apply this update, you must perform a clean build of the whole platform. To do this, use one of the following methods:
  • On the Build menu, click Clean Solution, and then click Build Solution.
  • On the Build menu, click Rebuild Solution.
You do not have to restart the computer after you apply this software update.

Update replacement information

This update does not replace any other updates.

File information

The English version of this software update package has the file attributes that are listed in the following table (or later file attributes). The dates and the times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time item in Control Panel.
Installer files
Collapse this tableExpand this table
File nameFile sizeDateTime
Wincepb60-110929-kb2580309-mipsii_fp.msi5,722,11229-Sep-201117:18
Wincepb60-110929-kb2580309-mipsiv.msi6,139,90429-Sep-201117:18
Wincepb60-110929-kb2580309-mipsiv_fp.msi5,783,55229-Sep-201117:18
Wincepb60-110929-kb2580309-sh4.msi5,750,78429-Sep-201117:18
Wincepb60-110929-kb2580309-x86.msi4,915,20029-Sep-201117:18
Wincepb60-110929-kb2580309-armv4i.msi6,062,08029-Sep-201117:18
Wincepb60-110929-kb2580309-mipsii.msi6,303,74429-Sep-201117:18
Files that are included in this update package
Collapse this tableExpand this table
File nameFile sizeDateTimePath
Windows embedded ce 6.0_update_kb2580309.htm7,96829-Sep-201117:03110929_kb2580309
Cexit.cpp2,77920-Sep-201116:16Private\Winceos\Coreos\Core\Corelibc\Crtw32\Startup
Onexit.c3,57020-Sep-201116:16Private\Winceos\Coreos\Core\Corelibc\Crtw32\Startup
Ccrtstrt.lib515,02620-Sep-201116:12Public\Common\Oak\Lib\Armv4i\Debug
Corelib0.lib558,15820-Sep-201116:12Public\Common\Oak\Lib\Armv4i\Debug
Fulllibc.lib3,049,58820-Sep-201116:12Public\Common\Oak\Lib\Armv4i\Debug
Giisr_lib.lib3,086,92420-Sep-201116:12Public\Common\Oak\Lib\Armv4i\Debug
Isr16550_lib.lib3,099,23820-Sep-201116:12Public\Common\Oak\Lib\Armv4i\Debug
Ne2000isr_lib.lib3,083,35220-Sep-201116:12Public\Common\Oak\Lib\Armv4i\Debug
Ccrtstrt.lib516,08620-Sep-201116:12Public\Common\Oak\Lib\Armv4i\Retail
Corelib0.lib558,98220-Sep-201116:12Public\Common\Oak\Lib\Armv4i\Retail
Fulllibc.lib2,770,75020-Sep-201116:12Public\Common\Oak\Lib\Armv4i\Retail
Giisr_lib.lib2,810,89020-Sep-201116:12Public\Common\Oak\Lib\Armv4i\Retail
Isr16550_lib.lib2,822,35020-Sep-201116:12Public\Common\Oak\Lib\Armv4i\Retail
Ne2000isr_lib.lib2,809,01220-Sep-201116:12Public\Common\Oak\Lib\Armv4i\Retail
Ccrtstrt.lib537,95620-Sep-201116:13Public\Common\Oak\Lib\Mipsii\Debug
Corelib0.lib581,06220-Sep-201116:13Public\Common\Oak\Lib\Mipsii\Debug
Fulllibc.lib3,027,09620-Sep-201116:13Public\Common\Oak\Lib\Mipsii\Debug
Giisr_lib.lib3,061,20020-Sep-201116:13Public\Common\Oak\Lib\Mipsii\Debug
Isr16550_lib.lib3,071,61220-Sep-201116:13Public\Common\Oak\Lib\Mipsii\Debug
Ne2000isr_lib.lib3,057,13220-Sep-201116:13Public\Common\Oak\Lib\Mipsii\Debug
Ccrtstrt.lib538,31820-Sep-201116:13Public\Common\Oak\Lib\Mipsii\Retail
Corelib0.lib581,23420-Sep-201116:13Public\Common\Oak\Lib\Mipsii\Retail
Fulllibc.lib2,779,06020-Sep-201116:13Public\Common\Oak\Lib\Mipsii\Retail
Giisr_lib.lib2,811,55420-Sep-201116:13Public\Common\Oak\Lib\Mipsii\Retail
Isr16550_lib.lib2,822,43620-Sep-201116:13Public\Common\Oak\Lib\Mipsii\Retail
Ne2000isr_lib.lib2,810,22620-Sep-201116:13Public\Common\Oak\Lib\Mipsii\Retail
Ccrtstrt.lib538,11220-Sep-201116:13Public\Common\Oak\Lib\Mipsii_fp\Debug
Corelib0.lib581,22420-Sep-201116:13Public\Common\Oak\Lib\Mipsii_fp\Debug
Fulllibc.lib2,913,98620-Sep-201116:13Public\Common\Oak\Lib\Mipsii_fp\Debug
Giisr_lib.lib2,948,10820-Sep-201116:14Public\Common\Oak\Lib\Mipsii_fp\Debug
Isr16550_lib.lib2,958,52020-Sep-201116:14Public\Common\Oak\Lib\Mipsii_fp\Debug
Ne2000isr_lib.lib2,944,04020-Sep-201116:14Public\Common\Oak\Lib\Mipsii_fp\Debug
Ccrtstrt.lib538,51220-Sep-201116:13Public\Common\Oak\Lib\Mipsii_fp\Retail
Corelib0.lib581,43620-Sep-201116:13Public\Common\Oak\Lib\Mipsii_fp\Retail
Fulllibc.lib2,661,59420-Sep-201116:13Public\Common\Oak\Lib\Mipsii_fp\Retail
Giisr_lib.lib2,694,10420-Sep-201116:13Public\Common\Oak\Lib\Mipsii_fp\Retail
Isr16550_lib.lib2,704,98820-Sep-201116:14Public\Common\Oak\Lib\Mipsii_fp\Retail
Ne2000isr_lib.lib2,692,77620-Sep-201116:14Public\Common\Oak\Lib\Mipsii_fp\Retail
Ccrtstrt.lib539,10820-Sep-201116:14Public\Common\Oak\Lib\Mipsiv\Debug
Corelib0.lib582,21820-Sep-201116:14Public\Common\Oak\Lib\Mipsiv\Debug
Fulllibc.lib3,140,78220-Sep-201116:14Public\Common\Oak\Lib\Mipsiv\Debug
Giisr_lib.lib3,175,18820-Sep-201116:14Public\Common\Oak\Lib\Mipsiv\Debug
Isr16550_lib.lib3,185,98620-Sep-201116:14Public\Common\Oak\Lib\Mipsiv\Debug
Ne2000isr_lib.lib3,171,08820-Sep-201116:14Public\Common\Oak\Lib\Mipsiv\Debug
Ccrtstrt.lib541,85420-Sep-201116:14Public\Common\Oak\Lib\Mipsiv\Retail
Corelib0.lib584,77420-Sep-201116:14Public\Common\Oak\Lib\Mipsiv\Retail
Fulllibc.lib2,895,34420-Sep-201116:14Public\Common\Oak\Lib\Mipsiv\Retail
Giisr_lib.lib2,928,18620-Sep-201116:14Public\Common\Oak\Lib\Mipsiv\Retail
Isr16550_lib.lib2,939,53020-Sep-201116:14Public\Common\Oak\Lib\Mipsiv\Retail
Ne2000isr_lib.lib2,926,81820-Sep-201116:14Public\Common\Oak\Lib\Mipsiv\Retail
Ccrtstrt.lib539,26420-Sep-201116:15Public\Common\Oak\Lib\Mipsiv_fp\Debug
Corelib0.lib582,38020-Sep-201116:15Public\Common\Oak\Lib\Mipsiv_fp\Debug
Fulllibc.lib2,931,08220-Sep-201116:15Public\Common\Oak\Lib\Mipsiv_fp\Debug
Giisr_lib.lib2,965,50420-Sep-201116:15Public\Common\Oak\Lib\Mipsiv_fp\Debug
Isr16550_lib.lib2,976,30420-Sep-201116:15Public\Common\Oak\Lib\Mipsiv_fp\Debug
Ne2000isr_lib.lib2,961,40420-Sep-201116:15Public\Common\Oak\Lib\Mipsiv_fp\Debug
Ccrtstrt.lib542,04820-Sep-201116:14Public\Common\Oak\Lib\Mipsiv_fp\Retail
Corelib0.lib584,97620-Sep-201116:15Public\Common\Oak\Lib\Mipsiv_fp\Retail
Fulllibc.lib2,691,96620-Sep-201116:15Public\Common\Oak\Lib\Mipsiv_fp\Retail
Giisr_lib.lib2,724,82420-Sep-201116:15Public\Common\Oak\Lib\Mipsiv_fp\Retail
Isr16550_lib.lib2,736,17020-Sep-201116:15Public\Common\Oak\Lib\Mipsiv_fp\Retail
Ne2000isr_lib.lib2,723,45620-Sep-201116:15Public\Common\Oak\Lib\Mipsiv_fp\Retail
Ccrtstrt.lib502,70220-Sep-201116:15Public\Common\Oak\Lib\Sh4\Debug
Corelib0.lib545,62620-Sep-201116:15Public\Common\Oak\Lib\Sh4\Debug
Fulllibc.lib2,872,11420-Sep-201116:15Public\Common\Oak\Lib\Sh4\Debug
Giisr_lib.lib2,902,22220-Sep-201116:15Public\Common\Oak\Lib\Sh4\Debug
Isr16550_lib.lib2,912,13820-Sep-201116:15Public\Common\Oak\Lib\Sh4\Debug
Ne2000isr_lib.lib2,900,26420-Sep-201116:15Public\Common\Oak\Lib\Sh4\Debug
Ccrtstrt.lib504,12020-Sep-201116:15Public\Common\Oak\Lib\Sh4\Retail
Corelib0.lib546,92020-Sep-201116:15Public\Common\Oak\Lib\Sh4\Retail
Fulllibc.lib2,655,53620-Sep-201116:15Public\Common\Oak\Lib\Sh4\Retail
Giisr_lib.lib2,686,26420-Sep-201116:15Public\Common\Oak\Lib\Sh4\Retail
Isr16550_lib.lib2,695,92020-Sep-201116:15Public\Common\Oak\Lib\Sh4\Retail
Ne2000isr_lib.lib2,685,21820-Sep-201116:15Public\Common\Oak\Lib\Sh4\Retail
Ccrtstrt.lib435,34420-Sep-201116:12Public\Common\Oak\Lib\X86\Debug
Corelib0.lib478,09820-Sep-201116:12Public\Common\Oak\Lib\X86\Debug
Fulllibc.lib2,755,87620-Sep-201116:12Public\Common\Oak\Lib\X86\Debug
Giisr_lib.lib2,787,82820-Sep-201116:12Public\Common\Oak\Lib\X86\Debug
Isr16550_lib.lib2,795,97620-Sep-201116:12Public\Common\Oak\Lib\X86\Debug
Ne2000isr_lib.lib2,785,70220-Sep-201116:12Public\Common\Oak\Lib\X86\Debug
Ccrtstrt.lib438,59420-Sep-201116:11Public\Common\Oak\Lib\X86\Retail
Corelib0.lib481,26220-Sep-201116:12Public\Common\Oak\Lib\X86\Retail
Fulllibc.lib2,642,00820-Sep-201116:12Public\Common\Oak\Lib\X86\Retail
Giisr_lib.lib2,678,05220-Sep-201116:12Public\Common\Oak\Lib\X86\Retail
Isr16550_lib.lib2,685,89420-Sep-201116:12Public\Common\Oak\Lib\X86\Retail
Ne2000isr_lib.lib2,676,12420-Sep-201116:12Public\Common\Oak\Lib\X86\Retail

REFERENCES

For more information about software update terminology, click the following article number to view the article in the Microsoft Knowledge Base:
824684  (http://support.microsoft.com/kb/824684/ ) Description of the standard terminology that is used to describe Microsoft software updates

APPLIES TO
  • Windows Embedded CE 6.0 R3
Keywords: 
kbfix kbqfe kbpubtypekc kbexpertiseinter KB2580309