(ucs4_internal_loop): Likewise.
	(ucs4_internal_loop_unaligned): Likewise.
	(internal_ucs4le_loop): Likewise.
	(internal_ucs4le_loop_unaligned): Likewise.
	(ucs4le_internal_loop): Likewise.
	(ucs4le_internal_loop_unaligned): Likewise.
This commit is contained in:
Ulrich Drepper 2000-05-07 22:04:36 +00:00
parent 1336419e46
commit fc08075dc6
3 changed files with 45 additions and 18 deletions

View File

@ -4,6 +4,12 @@
* iconv/tst-iconv1.c: New file.
* iconv/gconv_simple.c (internal_ucs4_loop): Prefer reporting
empty input buffer over full output buffer.
(ucs4_internal_loop): Likewise.
(ucs4_internal_loop_unaligned): Likewise.
(internal_ucs4le_loop): Likewise.
(internal_ucs4le_loop_unaligned): Likewise.
(ucs4le_internal_loop): Likewise.
(ucs4le_internal_loop_unaligned): Likewise.
Reported by yaoz@nih.gov.
2000-05-06 Bruno Haible <haible@clisp.cons.org>

View File

@ -234,10 +234,10 @@ ucs4_internal_loop (const unsigned char **inptrp, const unsigned char *inend,
*outptrp = outptr;
/* Determine the status. */
if (*outptrp == outend)
result = __GCONV_FULL_OUTPUT;
else if (*inptrp == inend)
if (*inptrp == inend)
result = __GCONV_EMPTY_INPUT;
else if (*outptrp == outend)
result = __GCONV_FULL_OUTPUT;
else
result = __GCONV_INCOMPLETE_INPUT;
@ -296,10 +296,10 @@ ucs4_internal_loop_unaligned (const unsigned char **inptrp,
*outptrp = outptr;
/* Determine the status. */
if (*outptrp == outend)
result = __GCONV_FULL_OUTPUT;
else if (*inptrp == inend)
if (*inptrp == inend)
result = __GCONV_EMPTY_INPUT;
else if (*outptrp == outend)
result = __GCONV_FULL_OUTPUT;
else
result = __GCONV_INCOMPLETE_INPUT;
@ -392,10 +392,10 @@ internal_ucs4le_loop (const unsigned char **inptrp, const unsigned char *inend,
#endif
/* Determine the status. */
if (*outptrp == outend)
result = __GCONV_FULL_OUTPUT;
else if (*inptrp == inend)
if (*inptrp == inend)
result = __GCONV_EMPTY_INPUT;
else if (*outptrp == outend)
result = __GCONV_FULL_OUTPUT;
else
result = __GCONV_INCOMPLETE_INPUT;
@ -438,10 +438,10 @@ internal_ucs4le_loop_unaligned (const unsigned char **inptrp,
# endif
/* Determine the status. */
if (*outptrp == outend)
result = __GCONV_FULL_OUTPUT;
else if (*inptrp == inend)
if (*inptrp == inend)
result = __GCONV_EMPTY_INPUT;
else if (*outptrp == outend)
result = __GCONV_FULL_OUTPUT;
else
result = __GCONV_INCOMPLETE_INPUT;
@ -531,10 +531,10 @@ ucs4le_internal_loop (const unsigned char **inptrp, const unsigned char *inend,
*outptrp = outptr;
/* Determine the status. */
if (*outptrp == outend)
result = __GCONV_FULL_OUTPUT;
else if (*inptrp == inend)
if (*inptrp == inend)
result = __GCONV_EMPTY_INPUT;
else if (*outptrp == outend)
result = __GCONV_FULL_OUTPUT;
else
result = __GCONV_INCOMPLETE_INPUT;
@ -583,10 +583,10 @@ ucs4le_internal_loop_unaligned (const unsigned char **inptrp,
*outptrp = outptr;
/* Determine the status. */
if (*outptrp == outend)
result = __GCONV_FULL_OUTPUT;
else if (*inptrp == inend)
if (*inptrp == inend)
result = __GCONV_EMPTY_INPUT;
else if (*outptrp == outend)
result = __GCONV_FULL_OUTPUT;
else
result = __GCONV_INCOMPLETE_INPUT;

View File

@ -1,3 +1,24 @@
2000-05-06 Kaz Kylheku <kaz@ashi.footprints.net>
* internals.h: New thread manager request type, REQ_KICK.
* join.c (pthread_exit): main thread now calls exit() instead
of _exit() in order to proper process cleanup.
* manager.c (__pthread_manager): Do not terminate manager
after unblocking main thread; wait for main thread's
REQ_PROCESS_EXIT request instead.
Also, added REQ_KICK case to handle new request; this just does
nothing.
* manager.c (pthread_exited): Do not terminate manager after
unblocking main thread.
* manager.c (__pthread_manager_sighandler): If the main thread
is waiting for all other threads to die, send a REQ_KICK into
the thread manager request pipe to get it to clean out the threads
and unblock the main thread as soon as possible. This fixes
the 2000 millisecond hang on shutdown bug.
* Examples/ex7.c: New file, tests shutdown behavior when all threads
including the main one call pthread_exit(), or implicitly do so.
* Makefile (tests): Add ex7.
2000-05-05 Andreas Jaeger <aj@suse.de>
* sysdeps/unix/sysv/linux/i386/getcpuclockid.c