Arduino 1.0 -> Serial.print NOT asynchronous?

Are you using the latest release of Arduino 1.0?

Are you using a 8 MHz board?

When I run your sketch I get this

lkjljlkjlkjljlkjlkjlkjlkjlkjlkjlkj
956
lkjljlkjlkjljlkjlkjlkjlkjlkjlkjlkj
952
lkjljlkjlkjljlkjlkjlkjlkjlkjlkjlkj
956
lkjljlkjlkjljlkjlkjlkjlkjlkjlkjlkj
956
lkjljlkjlkjljlkjlkjlkjlkjlkjlkjlkj
956
lkjljlkjlkjljlkjlkjlkjlkjlkjlkjlkj
952
lkjljlkjlkjljlkjlkjlkjlkjlkjlkjlkj
956
lkjljlkjlkjljlkjlkjlkjlkjlkjlkjlkj
952
lkjljlkjlkjljlkjlkjlkjlkjlkjlkjlkj
952

This is still very slow. I have been working with sixeyes to optimize writing strings to a serial port. See http://arduino.cc/forum/index.php/topic,85207.0.html.

The problem is that print(const char*) ends up writing to the buffer a character at a time. My new serial library is faster but still a bit slow since Print::print(const char*) calls Print::write(const char*) which does character at a time writes.

With my new library I get

lkjljlkjlkjljlkjlkjlkjlkjlkjlkjlkj
276
lkjljlkjlkjljlkjlkjlkjlkjlkjlkjlkj
276
lkjljlkjlkjljlkjlkjlkjlkjlkjlkjlkj
272
lkjljlkjlkjljlkjlkjlkjlkjlkjlkjlkj
272
lkjljlkjlkjljlkjlkjlkjlkjlkjlkjlkj
272
lkjljlkjlkjljlkjlkjlkjlkjlkjlkjlkj

I have optimized write(const char*) in my new serial library. I will soon post the version with optimized write(const char*).

If I change the print to write with my new library like this:

#include <SerialPort.h>
// port zero, 63 byte RX buffer 63 byte TX buffer
SerialPort<0, 63, 63> NewSerial;
#define Serial NewSerial

unsigned long timebegin;
unsigned long timeend;
void setup()
{
  Serial.begin(57600);
  
}
void loop() 
{
  timebegin = micros();   
  Serial.write("lkjljlkjlkjljlkjlkjlkjlkjlkjlkjlkj");   
  timeend = micros(); 
  Serial.println();
  Serial.println(timeend-timebegin);
  delay(100); 
}

I get very fast buffering:

lkjljlkjlkjljlkjlkjlkjlkjlkjlkjlkj
52
lkjljlkjlkjljlkjlkjlkjlkjlkjlkjlkj
56
lkjljlkjlkjljlkjlkjlkjlkjlkjlkjlkj
60
lkjljlkjlkjljlkjlkjlkjlkjlkjlkjlkj
52
lkjljlkjlkjljlkjlkjlkjlkjlkjlkjlkj
64
lkjljlkjlkjljlkjlkjlkjlkjlkjlkjlkj
64
lkjljlkjlkjljlkjlkjlkjlkjlkjlkjlkj
52