Mercurial > hg > xemacs-beta
view tests/sigpipe.c @ 5167:e374ea766cc1
clean up, rearrange allocation statistics code
-------------------- ChangeLog entries follow: --------------------
src/ChangeLog addition:
2010-03-21 Ben Wing <ben@xemacs.org>
* alloc.c:
* alloc.c (assert_proper_sizing):
* alloc.c (c_readonly):
* alloc.c (malloced_storage_size):
* alloc.c (fixed_type_block_overhead):
* alloc.c (lisp_object_storage_size):
* alloc.c (inc_lrecord_stats):
* alloc.c (dec_lrecord_stats):
* alloc.c (pluralize_word):
* alloc.c (object_memory_usage_stats):
* alloc.c (Fobject_memory_usage):
* alloc.c (compute_memusage_stats_length):
* alloc.c (disksave_object_finalization_1):
* alloc.c (Fgarbage_collect):
* mc-alloc.c:
* mc-alloc.c (mc_alloced_storage_size):
* mc-alloc.h:
No functionality change here. Collect the allocations-statistics
code that was scattered throughout alloc.c into one place. Add
remaining section headings so that all sections have headings
clearly identifying the start of the section and its purpose.
Expose mc_alloced_storage_size() even when not MEMORY_USAGE_STATS;
this fixes build problems and is related to the export of
lisp_object_storage_size() and malloced_storage_size() when
non-MEMORY_USAGE_STATS in the previous change set.
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Sun, 21 Mar 2010 04:41:49 -0500 |
parents | 679041362cd4 |
children | 308d34e9f07d |
line wrap: on
line source
/* code is all from loser.c and loser.el by Mly Copyright (C) 2002 Richard Mlynarik <mly@pobox.com> This file is part of XEmacs. XEmacs is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. XEmacs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with XEmacs; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Commentary: Compile this file. Run it in the background giving it a command line argument PORT which is a positive integer 1024 < PORT < 32768 (avoid the numbers assigned in /etc/services). Then start up a fresh (you're going to crash) XEmacs. Execute the following (defun lose (port) (interactive "nUrk: ") (require 'comint) (while t (condition-case e (let* ((name "*lose*") (b (get-buffer-create name))) (switch-to-buffer b) (comint-mode) (comint-exec b name (cons "127.0.0.1" port) nil '()) (process-send-string (get-buffer-process b) "\377\373\001") (process-send-string (get-buffer-process b) "\377\373\001")) (error (message "URK: %s" e)) (sit-for 1)))) Then M-x lose RET PORT RET and you lose big (in XEmacs 21.1, anyway). Note: the error messages are proper functioning. What should eventually happen after a number of SIGPIPEs is that you get a SIGSEGV and life is bad and XEmacs is dead. */ #include <arpa/inet.h> int main (int argc, char **argv) { struct sockaddr_in junk; int s; memset (&junk, 0, sizeof (junk)); junk.sin_family = AF_INET; junk.sin_addr.s_addr = htonl (INADDR_ANY); /* un*x sucks */ junk.sin_port = htons (atoi (argv[1])); /* un*x blows */ s = socket (PF_INET, SOCK_STREAM, 0); bind (s, (struct sockaddr *)&junk, sizeof (junk)); listen (s, 1); for (;;) { int loser = accept (s, NULL, 0); close (loser); } }