]> git.lizzy.rs Git - plan9front.git/log
plan9front.git
11 years agoetheriwl: check RF-Kill switch on attach
cinap_lenrek [Sat, 9 Feb 2013 23:14:17 +0000 (00:14 +0100)]
etheriwl: check RF-Kill switch on attach

11 years agoetheriwl: fix mistake
cinap_lenrek [Sun, 10 Feb 2013 22:38:08 +0000 (23:38 +0100)]
etheriwl: fix mistake

11 years agoexportfs: applying exportfs-chdir patch (from sources)
cinap_lenrek [Sun, 10 Feb 2013 22:31:26 +0000 (23:31 +0100)]
exportfs: applying exportfs-chdir patch (from sources)

Fix the behavior of exportfs -r.

Check the return of chdir(srv) to prevent exporting accidentally
the current working directory when the directory specified
with option -r doesn't exist.

Also fix at the same time the missing trailing \n in error
messages printed just before exits().

11 years agoetheriwl: work towards supporting other cards than 5300, gather channel information
cinap_lenrek [Sun, 10 Feb 2013 22:02:21 +0000 (23:02 +0100)]
etheriwl: work towards supporting other cards than 5300, gather channel information

11 years agoetheriwl: fix command queue handling
cinap_lenrek [Sat, 9 Feb 2013 18:12:51 +0000 (19:12 +0100)]
etheriwl: fix command queue handling

we have to decrement the queue counter for all tx rings
*including* the command ring 4.

zero the command buffer for the crystal callibration
command.

11 years agoetheriwl: experimental intel wifi link driver
cinap_lenrek [Sat, 9 Feb 2013 02:19:50 +0000 (03:19 +0100)]
etheriwl: experimental intel wifi link driver

11 years agoape: fix bug in access()
ppatience0 [Fri, 8 Feb 2013 23:01:31 +0000 (18:01 -0500)]
ape: fix bug in access()

11 years agocdproto create /sys/log/www
stanley lieber [Mon, 4 Feb 2013 22:56:34 +0000 (16:56 -0600)]
cdproto create /sys/log/www

11 years agoadd !tcp80
stanley lieber [Mon, 4 Feb 2013 22:42:13 +0000 (16:42 -0600)]
add !tcp80

11 years agoadd rc-httpd
stanley lieber [Mon, 4 Feb 2013 22:40:05 +0000 (16:40 -0600)]
add rc-httpd

11 years agocc/lex: do not crash on -I without arg
ftrvxmtrx [Sat, 2 Feb 2013 15:54:09 +0000 (16:54 +0100)]
cc/lex: do not crash on -I without arg

11 years agoaudio: fix delay control, increase default buffer delay to 40ms
cinap_lenrek [Fri, 1 Feb 2013 14:23:38 +0000 (15:23 +0100)]
audio: fix delay control, increase default buffer delay to 40ms

just doing a single sleep isnt enougth, as we get woken
up for every block!

11 years ago6l: eleminate NOP X0 instructions (from eriks 6l-nop-x0 patch)
cinap_lenrek [Thu, 31 Jan 2013 23:15:02 +0000 (00:15 +0100)]
6l: eleminate NOP X0 instructions (from eriks 6l-nop-x0 patch)

erik found that -N left NOPs in that 6l couldn't ignore.
add Xn to the NOP table.

bonanza; cat > fp.c
#include <u.h>
#include <libc.h>
#include <stdio.h>

void
main(void)
{
        double g;

        g = -0.;

        print("%g\n", g);
        printf("%g\n", g);
        exits("");
}
bonanza; 6c -N -FVTw fp.c
bonanza; 6l -o 6.fp fp.6
main: doasm: notfound from=6f to=34 (939)       NOP     ,X0
main: doasm: notfound from=6f to=34 (939)       NOP     ,X0
main: doasm: notfound from=6f to=34 (939)       NOP     ,X0

11 years agohttpd: fix rane requests
cinap_lenrek [Thu, 31 Jan 2013 21:51:21 +0000 (22:51 +0100)]
httpd: fix rane requests

we gave wrong content-length in range requests. r->stop - r->start
is wrong because r->stop is the byte offset of the *last* byte, not
the *next* byte after the last.

11 years agohttpfile: fix range requests
cinap_lenrek [Thu, 31 Jan 2013 21:48:56 +0000 (22:48 +0100)]
httpfile: fix range requests

byte ranges use closed intervals (inclusive first
and last byte offsets)

11 years agousbehci: remove panic() calls from interrupts if stuff isnt ready (spurious interrupts?)
cinap_lenrek [Thu, 31 Jan 2013 22:43:04 +0000 (23:43 +0100)]
usbehci: remove panic() calls from interrupts if stuff isnt ready (spurious interrupts?)

11 years agonusb/kb: increase maximum report descriptor size, non-continuous endpoints (from...
cinap_lenrek [Wed, 30 Jan 2013 19:33:28 +0000 (20:33 +0100)]
nusb/kb: increase maximum report descriptor size, non-continuous endpoints (from richard millars usbmouse-endpoint patch)

Another band-aid fix to the usb mouse driver, to cope with a mouse which has
an interrupt endpoint number 3 but no number 1 or 2, and a report descriptor
more than 128 bytes long.

11 years agolib9p: defer freeing srv for listensrv()
cinap_lenrek [Wed, 30 Jan 2013 09:34:57 +0000 (10:34 +0100)]
lib9p: defer freeing srv for listensrv()

use the Srv.end callback for freeing the srv and closing the
file descriptor of a connection. this makes sure we wont free
the srv while there are still outstanding requests that would
access the srv when doing the respond() call.

11 years agohjfs: fix bogus nodata getbuf() of superblock in createroot() (failed ream race bug)
cinap_lenrek [Wed, 30 Jan 2013 08:38:02 +0000 (09:38 +0100)]
hjfs: fix bogus nodata getbuf() of superblock in createroot() (failed ream race bug)

we used to do getbuf() with nodata flag so it only worked when
we where lucky and got the same in memory block back. this
is uncritical once you have reamed the filesystem, its just
that sometimes ream would fail with "ream successfull, then
hjfs: fsinit: file ./hjfs not found".

11 years agomerge
cinap_lenrek [Wed, 30 Jan 2013 05:30:07 +0000 (06:30 +0100)]
merge

11 years ago9p message size too small
cinap_lenrek [Wed, 30 Jan 2013 05:28:42 +0000 (06:28 +0100)]
9p message size too small

various fileservers do not check if the message size is too small
(they subtract IOHDRSZ later from it to calculate iounit) which
can overflow.

11 years agolib9p: defer closing down srv until the last request has been responded, Tversion...
cinap_lenrek [Wed, 30 Jan 2013 05:26:03 +0000 (06:26 +0100)]
lib9p: defer closing down srv until the last request has been responded, Tversion message size

in multithreaded programs, we have to wait until all outstanding
requests have been responded before closing down the srv.

dont make write errors sysfatal(), only print them. in case if
listensrv() is used we dont want to exit the process in respond()
called by some worker thread.

make sure Tversion is only handled when there are no outstanding
requests and make sure message size is sane.

11 years agoreverted changes to termrc
mveety [Wed, 30 Jan 2013 02:48:57 +0000 (21:48 -0500)]
reverted changes to termrc

11 years agomade the timesync failure more obvious on the rpi.
mveety [Wed, 30 Jan 2013 00:03:10 +0000 (19:03 -0500)]
made the timesync failure more obvious on the rpi.

11 years agoFixed some ircrc bugs. Only the last channel given to the -t flag is set as target...
ppatience0 [Wed, 30 Jan 2013 04:56:29 +0000 (23:56 -0500)]
Fixed some ircrc bugs. Only the last channel given to the -t flag is set as target. Unknown commands are not sent to the server. Control-D can be used to exit the client. When the connection is lost, an error message is displayed and the client waits for user input before exiting. Manual page updated.

11 years agoaudiohda: fix vid typo 1003 -> 1003
cinap_lenrek [Tue, 29 Jan 2013 20:59:34 +0000 (21:59 +0100)]
audiohda: fix vid typo 1003 -> 1003

11 years agoaudiohda: add pci id for Intel P55 chipset and ATI HDMI (Radeon HD 8500)
cinap_lenrek [Tue, 29 Jan 2013 20:56:02 +0000 (21:56 +0100)]
audiohda: add pci id for Intel P55 chipset and ATI HDMI (Radeon HD 8500)

11 years agoacpi: remove "cannot get pci bus number for ..." debug prints
cinap_lenrek [Tue, 29 Jan 2013 17:24:48 +0000 (18:24 +0100)]
acpi: remove "cannot get pci bus number for ..." debug prints

on almost all machines, we get tons of these prints for pci busses that
are not physically there but are described in the ACPI namespace. the
reason that we enumerate these is because we do not enumerate _INI and _STA
methods to check if they are present. we just match the information with
the PCI devices we enumerated with our generic pci code. this works fine and
doesnt require aml code to poke arround in pci config space.

11 years agohgignore: ignore /proc
cinap_lenrek [Tue, 29 Jan 2013 01:54:38 +0000 (02:54 +0100)]
hgignore: ignore /proc

11 years agoadded support for the dos partition on raspberry pi.
mveety [Mon, 28 Jan 2013 23:48:34 +0000 (18:48 -0500)]
added support for the dos partition on raspberry pi.

11 years agoremoved fakertc device that confused timesync. timesync now fails trying to read...
mveety [Mon, 28 Jan 2013 22:06:35 +0000 (17:06 -0500)]
removed fakertc device that confused timesync. timesync now fails trying to read it and hints user to get time elsewhere

11 years agoremoved fake rtc device.
mveety [Mon, 28 Jan 2013 22:00:30 +0000 (17:00 -0500)]
removed fake rtc device.

11 years agodocument tcp445 (CIFS/SMB) listener
cinap_lenrek [Mon, 28 Jan 2013 15:41:25 +0000 (16:41 +0100)]
document tcp445 (CIFS/SMB) listener

11 years agoremove /rc/bin/mousereset
cinap_lenrek [Mon, 28 Jan 2013 15:40:50 +0000 (16:40 +0100)]
remove /rc/bin/mousereset

11 years agovalley: fix random numbers
cinap_lenrek [Mon, 28 Jan 2013 02:54:17 +0000 (03:54 +0100)]
valley: fix random numbers

11 years agohurr
khm [Sun, 27 Jan 2013 22:46:31 +0000 (17:46 -0500)]
hurr

11 years agoadded valley(1)
khm [Sun, 27 Jan 2013 22:36:05 +0000 (17:36 -0500)]
added valley(1)

11 years agoaudioac97: fix inverted recgain control, init to zero recgain
cinap_lenrek [Sun, 27 Jan 2013 16:20:42 +0000 (17:20 +0100)]
audioac97: fix inverted recgain control, init to zero recgain

some controls are inverted. we reflect this by specifying
negative range in the volume table now and let genaudiovolread()
and genaudiovolwrite() do the conversion.

11 years agoaudioac97, audiohda: dont block on close, just pad the last block with zeros
cinap_lenrek [Sun, 27 Jan 2013 13:00:42 +0000 (14:00 +0100)]
audioac97, audiohda: dont block on close, just pad the last block with zeros

11 years agomerge
cinap_lenrek [Sun, 27 Jan 2013 12:00:09 +0000 (13:00 +0100)]
merge

11 years agosam: make scroll wheel work outside scrollbar
cinap_lenrek [Sun, 27 Jan 2013 11:57:51 +0000 (12:57 +0100)]
sam: make scroll wheel work outside scrollbar

11 years agostatusbar: fix garbled percentage output
ftrvxmtrx [Sun, 27 Jan 2013 10:51:31 +0000 (11:51 +0100)]
statusbar: fix garbled percentage output

11 years agoadd arm vfp support to compiler and linker (from sources)
cinap_lenrek [Sat, 26 Jan 2013 17:03:45 +0000 (18:03 +0100)]
add arm vfp support to compiler and linker (from sources)

11 years agoadd raspberry pi kernel (from sources)
cinap_lenrek [Sat, 26 Jan 2013 16:33:56 +0000 (17:33 +0100)]
add raspberry pi kernel (from sources)

11 years agoadd tegra2 soc kernel (from sources)
cinap_lenrek [Sat, 26 Jan 2013 16:33:21 +0000 (17:33 +0100)]
add tegra2 soc kernel (from sources)

11 years agoomap: update omap kernel (from sources)
cinap_lenrek [Sat, 26 Jan 2013 16:32:08 +0000 (17:32 +0100)]
omap: update omap kernel (from sources)

refactors of the usb ehci code and adds vfp support

11 years agodevuart: export uartenable()
cinap_lenrek [Sat, 26 Jan 2013 16:26:28 +0000 (17:26 +0100)]
devuart: export uartenable()

11 years agokernel: add portable uncached memory allocator (ucalloc) (from sources)
cinap_lenrek [Sat, 26 Jan 2013 16:25:23 +0000 (17:25 +0100)]
kernel: add portable uncached memory allocator (ucalloc) (from sources)

11 years agokernel: add portable sd mmc interface (from sources)
cinap_lenrek [Sat, 26 Jan 2013 16:06:28 +0000 (17:06 +0100)]
kernel: add portable sd mmc interface (from sources)

11 years agolibc: update atomic ops and fp code for arm (from sources)
cinap_lenrek [Sat, 26 Jan 2013 16:00:38 +0000 (17:00 +0100)]
libc: update atomic ops and fp code for arm (from sources)

11 years agonusb/serial: add silabs driver (from sources)
cinap_lenrek [Fri, 25 Jan 2013 16:12:15 +0000 (17:12 +0100)]
nusb/serial: add silabs driver (from sources)

11 years agoacme: fix unicode handling for editout (from sources)
cinap_lenrek [Fri, 25 Jan 2013 15:45:04 +0000 (16:45 +0100)]
acme: fix unicode handling for editout (from sources)

11 years agoomap: fix breakpoint instruction trap handling (from sources)
cinap_lenrek [Fri, 25 Jan 2013 13:48:57 +0000 (14:48 +0100)]
omap: fix breakpoint instruction trap handling (from sources)

11 years agomerge
cinap_lenrek [Fri, 25 Jan 2013 13:20:53 +0000 (14:20 +0100)]
merge

11 years agolibventi: handle nil connection in rpc as error instead of crashing (from sources)
cinap_lenrek [Fri, 25 Jan 2013 13:19:18 +0000 (14:19 +0100)]
libventi: handle nil connection in rpc as error instead of crashing (from sources)

11 years agolibdraw: fix memory corruption bug in initdisplay()
cinap_lenrek [Fri, 25 Jan 2013 13:17:41 +0000 (14:17 +0100)]
libdraw: fix memory corruption bug in initdisplay()

11 years agolibc: set malloctag for runestrdup()
cinap_lenrek [Fri, 25 Jan 2013 13:15:48 +0000 (14:15 +0100)]
libc: set malloctag for runestrdup()

11 years agojpg: check read count when reading png magic (harmless)
cinap_lenrek [Fri, 25 Jan 2013 13:14:31 +0000 (14:14 +0100)]
jpg: check read count when reading png magic (harmless)

11 years agoadd Uruguay timezone (from sources)
cinap_lenrek [Fri, 25 Jan 2013 13:13:01 +0000 (14:13 +0100)]
add Uruguay timezone (from sources)

11 years agotga, file: 15-bit tga images
ftrvxmtrx [Thu, 24 Jan 2013 21:10:27 +0000 (22:10 +0100)]
tga, file: 15-bit tga images

11 years agocons(3): add /dev/mordor to the list
stanley lieber [Thu, 24 Jan 2013 17:41:36 +0000 (11:41 -0600)]
cons(3): add /dev/mordor to the list

11 years agotga: fix flip/reflect
ftrvxmtrx [Tue, 22 Jan 2013 16:02:31 +0000 (17:02 +0100)]
tga: fix flip/reflect

11 years agoarp: fix memory leaks for "flush" and "del" arp ctl messages
cinap_lenrek [Tue, 22 Jan 2013 14:26:34 +0000 (15:26 +0100)]
arp: fix memory leaks for "flush" and "del" arp ctl messages

11 years agomount /n/other from /srv/boot instead of /srv/cwfs
cinap_lenrek [Tue, 22 Jan 2013 09:41:01 +0000 (10:41 +0100)]
mount /n/other from /srv/boot instead of /srv/cwfs

this makes sure tcp boot will have ther user /tmp's
the same way as from local cwfs. we used /srv/cwfs
to prevent a deadlock with 9660srv as a root filesystem
which has been fixed now.

11 years ago9660srv: run 9p service in separate namespace to prevent deadlock
cinap_lenrek [Tue, 22 Jan 2013 09:35:42 +0000 (10:35 +0100)]
9660srv: run 9p service in separate namespace to prevent deadlock

we have to run the 9p service process in its own namespace
otherwise the attach filename might point onto the served
filesystem causing it to deadlock. this happens especially
if 9660srv is used as root filesystem. (cdboot)

11 years agoaudioac97: set adc rate
cinap_lenrek [Mon, 21 Jan 2013 15:16:59 +0000 (16:16 +0100)]
audioac97: set adc rate

set adc (recording) sample rate the same as playback for now.
make these separate entries later when we reintroduce in/out
attributes to volume controls.

11 years agofile: more sanity checking for tga image detection to avoid false positives
cinap_lenrek [Mon, 21 Jan 2013 11:01:05 +0000 (12:01 +0100)]
file: more sanity checking for tga image detection to avoid false positives

11 years agotga: fix bad output channel descriptor for grayscale images and -9 flag, revert page...
cinap_lenrek [Mon, 21 Jan 2013 10:09:47 +0000 (11:09 +0100)]
tga: fix bad output channel descriptor for grayscale images and -9 flag, revert page work arround

11 years agomerge
ftrvxmtrx [Mon, 21 Jan 2013 08:17:26 +0000 (09:17 +0100)]
merge

11 years agopage: image/tga
ftrvxmtrx [Sun, 20 Jan 2013 23:07:05 +0000 (00:07 +0100)]
page: image/tga

11 years agopage: force images to RGB using -3 flag (fixes grey-scale images displaying)
ftrvxmtrx [Sun, 20 Jan 2013 23:06:36 +0000 (00:06 +0100)]
page: force images to RGB using -3 flag (fixes grey-scale images displaying)

11 years agofile: detect tga images
ftrvxmtrx [Mon, 21 Jan 2013 00:05:00 +0000 (01:05 +0100)]
file: detect tga images

11 years agoreadtga: fix b/w, add color-mapped images support
ftrvxmtrx [Sun, 20 Jan 2013 21:35:03 +0000 (22:35 +0100)]
readtga: fix b/w, add color-mapped images support

11 years agototruecolor: support CRGBV images as input
ftrvxmtrx [Sun, 20 Jan 2013 21:33:12 +0000 (22:33 +0100)]
totruecolor: support CRGBV images as input

11 years agoreadtga: clean-up
ftrvxmtrx [Sun, 20 Jan 2013 10:27:03 +0000 (11:27 +0100)]
readtga: clean-up

11 years agorewrite.direct: rewrite aliases before delivering to local users to avoid re-sending...
stanley lieber [Sat, 19 Jan 2013 03:47:49 +0000 (21:47 -0600)]
rewrite.direct: rewrite aliases before delivering to local users to avoid re-sending the message

11 years agoaudiohda: automatically pick inpin
cinap_lenrek [Sat, 19 Jan 2013 01:30:33 +0000 (02:30 +0100)]
audiohda: automatically pick inpin

11 years agoaudio: add port/audioif.h dependencies to mkfile
cinap_lenrek [Sat, 19 Jan 2013 00:23:34 +0000 (01:23 +0100)]
audio: add port/audioif.h dependencies to mkfile

11 years agoaudiohda: first attempt on audio recording support for intel hda audio, distinguish...
cinap_lenrek [Sat, 19 Jan 2013 00:12:39 +0000 (01:12 +0100)]
audiohda: first attempt on audio recording support for intel hda audio, distinguish mode in audio code

11 years agomerge
cinap_lenrek [Fri, 18 Jan 2013 12:14:50 +0000 (13:14 +0100)]
merge

11 years agoaudioac97: audio recording
cinap_lenrek [Fri, 18 Jan 2013 12:12:41 +0000 (13:12 +0100)]
audioac97: audio recording

11 years agofortunes: maybe i should ask at #cat-v
stanley lieber [Thu, 17 Jan 2013 13:59:04 +0000 (07:59 -0600)]
fortunes: maybe i should ask at #cat-v

11 years agowebfs: handle multiple WWW-Authenticate headers, fix fmtstrinit() memory leaks
cinap_lenrek [Thu, 17 Jan 2013 11:28:19 +0000 (12:28 +0100)]
webfs: handle multiple WWW-Authenticate headers, fix fmtstrinit() memory leaks

11 years agovncv: do flushimage() under display lock, zero ypdate rect
cinap_lenrek [Wed, 16 Jan 2013 08:51:15 +0000 (09:51 +0100)]
vncv: do flushimage() under display lock, zero ypdate rect

11 years ago6in4: add -o option to make it possible to use different nets for ipv6 and ipv4 interface
cinap_lenrek [Mon, 14 Jan 2013 06:09:25 +0000 (07:09 +0100)]
6in4: add -o option to make it possible to use different nets for ipv6 and ipv4 interface

11 years agoFour shall be the number thou shalt count, and the number of the counting shall be...
cinap_lenrek [Sun, 13 Jan 2013 14:38:21 +0000 (15:38 +0100)]
Four shall be the number thou shalt count, and the number of the counting shall be four.

11 years agoplan9.ini(8): isa uarts
cinap_lenrek [Sun, 13 Jan 2013 10:04:24 +0000 (11:04 +0100)]
plan9.ini(8): isa uarts

11 years agovt: ignore line spacing escape2
cinap_lenrek [Sun, 13 Jan 2013 09:32:51 +0000 (10:32 +0100)]
vt: ignore line spacing escape2

11 years agoremove non standard COM3 (eia2) serial port from i8250 uart.
cinap_lenrek [Sun, 13 Jan 2013 09:23:31 +0000 (10:23 +0100)]
remove non standard COM3 (eia2) serial port from i8250 uart.

access to non standard serial port COM3 at i/o port 0x200 causes
kernel panic on some machines (Toshiba Sattelite 1415-S115). also,
some machines have gameport at 0x200.

i readded uartisa to the pcf and pccpuf kernel configurations so
one can use plan9.ini to add non standard uarts like:

uart2=type=isa port=0x200 irq=5

11 years agohjfs: dont mask permission bits for "create" console command
cinap_lenrek [Sun, 13 Jan 2013 07:49:31 +0000 (08:49 +0100)]
hjfs: dont mask permission bits for "create" console command

11 years agowebfs: preauth support
cinap_lenrek [Fri, 11 Jan 2013 23:16:07 +0000 (00:16 +0100)]
webfs: preauth support

11 years agohget(1): fix typo, various cleanups
cinap_lenrek [Fri, 11 Jan 2013 09:26:54 +0000 (10:26 +0100)]
hget(1): fix typo, various cleanups

11 years agohget(1): document restrictions for name@file with -m flag, fix examples, usage
cinap_lenrek [Fri, 11 Jan 2013 09:00:28 +0000 (10:00 +0100)]
hget(1): document restrictions for name@file with -m flag, fix examples, usage

11 years agomk: fix ar padding problems on 64bit (from eriks amd64mkar patch)
cinap_lenrek [Fri, 11 Jan 2013 02:16:30 +0000 (03:16 +0100)]
mk: fix ar padding problems on 64bit (from eriks amd64mkar patch)

11 years agolibdraw: gengetwindow() fix mistake
cinap_lenrek [Fri, 11 Jan 2013 22:18:22 +0000 (23:18 +0100)]
libdraw: gengetwindow() fix mistake

dont zero *winp so the "screen" pointer is preserved.

11 years agolibdraw: gengetwindow() resize race
cinap_lenrek [Thu, 10 Jan 2013 21:16:23 +0000 (22:16 +0100)]
libdraw: gengetwindow() resize race

instead of trying to make rio not change the window image too fast
and give the client some time to attach it (which turns out to be
impossible), we acknowledge that there is a race and just retry
the window reattach as long as the winname keeps changing in
gengetwindow().

11 years agomerge
cinap_lenrek [Thu, 10 Jan 2013 22:12:37 +0000 (23:12 +0100)]
merge

11 years agostill races, reverting... need a better approach.
cinap_lenrek [Thu, 10 Jan 2013 22:10:16 +0000 (23:10 +0100)]
still races, reverting... need a better approach.

11 years agomerge
cinap_lenrek [Wed, 9 Jan 2013 15:35:07 +0000 (16:35 +0100)]
merge

11 years agorio: fix window resize and attach race
cinap_lenrek [Wed, 9 Jan 2013 15:32:53 +0000 (16:32 +0100)]
rio: fix window resize and attach race

if a window gets hidden/unhidden/resized too fast, the client might have no
chance attaching to that image using winname. so we move the window
offscreen instead and delay the freeimage() by doing it in the deletethread().