Non-blocking and terminating processes

Can someone give me an example of using the host.nonblocking to terminate a process or a window that is opened using a webutil_file_Transfer.DB_To_Client when finished using the opened document.
I am using oracle 10g developer:
Thanks

"non-blocking port" and "1:1 oversubscription" are the same.    It's also the same when you are saying "line rate".  

Similar Messages

  • What is the difference between non-blocking and 1:1 oversubscribed?

    Could someone tell me what the difference is between a non-blocked port and one with 1:1 oversubscription?

    "non-blocking port" and "1:1 oversubscription" are the same.    It's also the same when you are saying "line rate".  

  • NIO SocketChannel non-blocking read

    Hello.
    I'm not sure a resembling message has already been posted in a forum. In such a case, thanks for redirecting to it.
    Goals :
    A selector is used by a main server thread to make accept and read operations non-blocking.
    When a connection is accepted, the newly created socket channel is configured as non-blocking, and a key is added to the selector with the OP_READ flag.
    When data are available on sockets, a new task (runnable) is created and submitted to a thread pool.
    When a thread is ready to process the request, a pre-allocated bytebuffer is used to read arriving data.
    The problem :
    When the bytebuffer capacity is less than the received bytes count, the read method on the socket channel interrupts the selector on the same selection key. In response to this event, a new task is initiated, interferring with the previous one.
    As expected according to my concurrency policy (ie. with a pool of threads), several requests are processed by parallel threads. To avoid unsafe accesses, i added a synchronized statement on the channel blocking lock, and it seems to works fine. But a better way should exist...
    Questions :
    Is this the expected behavior ?
    Is there any other way to read received data with a small buffer ?
    The full copy of the source code :
    import java.io.*;
    import java.nio.*;
    import java.nio.channels.*;
    import java.nio.channels.spi.*;
    import java.nio.charset.*;
    import java.net.*;
    import java.util.*;
    import net.moon.threads.*;
    public class Nio1 {
         static class Request {
              boolean isCompleted = false;
              int inputs = 0;
              Set workers = new HashSet();
              ByteArrayOutputStream baos = new ByteArrayOutputStream();
              byte p = 0;
              boolean isCompleted() {
                   return isCompleted;
              void countInput() {
                   inputs++;
              void append(final ByteBuffer byteBuffer) {
                   if (isCompleted)
                        throw new IllegalStateException("Request is already completed");
                   workers.add(Thread.currentThread());
                   while (byteBuffer.hasRemaining()) {
                        byte b = byteBuffer.get();
                        baos.write(b);
                        if ((b == '\r') && (p == '\n'))
                             isCompleted = true;
                        p = b;
              int inputs() {
                   return inputs;
              Thread[] workers() {
                   return (Thread[]) workers.toArray(new Thread[0]);
              int size() {
                   return baos.size();
              byte[] getData() {
                   return baos.toByteArray();
              void reset() {
                   isCompleted = false;
                   inputs = 0;
                   baos.reset();
                   workers.clear();
         static private class RequestTask implements Runnable {
         private final static Charset charset = Charset.forName("US-ASCII");
              private final Server server;
              private final SelectionKey selectionKey;
              RequestTask(final Server server, final SelectionKey selectionKey) {
                   this.server = server;
                   this.selectionKey = selectionKey;
              public void run() {
                   log("*** Processing input...");
                   try {
                        SocketChannel channel = (SocketChannel) selectionKey.channel();
    synchronized(channel.blockingLock()) {
                        Request request = (Request) selectionKey.attachment();
                        request.countInput();
                        State state = getState();
                        log("Reading first...");
                        int c = channel.read(state.byteBuffer);
                        log("... Read first : " + c);
                        if (c > 0) {
                             for(;;) {
                                  state.byteBuffer.flip();
                             request.append(state.byteBuffer);
                                  state.byteBuffer.clear();
                                  if (c < state.byteBuffer.capacity()) break;
                                  log("Reading next...");
                                  c = channel.read(state.byteBuffer);
                                  log("... Read next : " + c);
                                  if (c <= 0) break;
                             if (request.isCompleted()) {
                                  log("Request completed : " + request.inputs());
                                  StringBuffer bodyBuffer = new StringBuffer();
                                  bodyBuffer.append("-----------------------------\r\n");
                                  bodyBuffer.append("Request processed in " + request.inputs() + " inputs\r\n");
                                  bodyBuffer.append("Request size is " + request.size() + " bytes\r\n");
                                  bodyBuffer.append("Participating workers :\r\n");
                                  Thread[] workers = request.workers();
                                  for (int i = 0; i < workers.length; i++)
                                       bodyBuffer.append(" * " + workers[i] + "\r\n");
                                  bodyBuffer.append("-----------------------------\r\n");
                                  StringBuffer headerBuffer = new StringBuffer();
                                  headerBuffer.append("HTTP/1.1 200 OK\r\n");
                                  headerBuffer.append("Server: NIO Server 1\r\n");
                                  headerBuffer.append("Content-Type: text/plain\r\n");
                                  headerBuffer.append("Content-Length: ").append(request.size() + bodyBuffer.length()).append("\r\n");
                                  headerBuffer.append("\r\n");
                             CharsetEncoder encoder = charset.newEncoder();
                                  channel.write(encoder.encode(CharBuffer.wrap(headerBuffer)));
                                  channel.write(encoder.encode(CharBuffer.wrap(bodyBuffer)));
                                  channel.write(ByteBuffer.wrap(request.getData()));
                                  request.reset();
                        if (c < 0) {
                             selectionKey.attach(null);
                             selectionKey.cancel();
                             log("!!! Connection terminated for channel " + channel);
                   catch(final Exception x) {
                        x.printStackTrace();
                   log("*** Request processed...");
              private State getState() {
                   State state = (State) server.taskManager.getCurrentWorkerState();
                   if (state == null) {
                        state = new State();
                        server.taskManager.setCurrentWorkerState(state);
                   else {
                        state.byteBuffer.clear();
                   return state;
              private void log(final String text) {
                   System.out.println(Thread.currentThread() + " : " + text);
              static class State {
                   ByteBuffer byteBuffer = ByteBuffer.allocateDirect(32);
         static private class Server implements Runnable {
              private final int port;
              private Thread worker;
              private FIFOTaskManager taskManager;
              Server(final int port) {
                   this.port = port;
                   worker = null;
              synchronized void start() throws Exception {
                   if (worker == null) {
                        log("Starting the server...");
                        taskManager = new FIFOTaskManager("Nio1Workers", 24);
                        worker = new Thread(this);
                        worker.start();
                        synchronized(worker) {
                             try {
                                  worker.wait();
                             catch(InterruptedException x) {
                        log("Server started !");
              public void run() {
                   try {
                        log("Server is starting...");
                        Selector selector = SelectorProvider.provider().openSelector();
                        log("Creating listener on port " + port);
                        ServerSocketChannel serverSocketChannel = ServerSocketChannel.open();
                        serverSocketChannel.configureBlocking(false);
                        InetSocketAddress inetSocketAddress = new InetSocketAddress(port);
                        serverSocketChannel.socket().bind(inetSocketAddress);
                        SelectionKey selectionKey = serverSocketChannel.register(selector, SelectionKey.OP_ACCEPT);
                        synchronized(worker) {
                             worker.notify();
                        while (selector.select() >= 0) {
                             Set readyKeys = selector.selectedKeys();
                             log("Keys are ready : " + readyKeys.size());
                             for (Iterator i = readyKeys.iterator(); i.hasNext(); ) {
                                  SelectionKey selectedKey = (SelectionKey) i.next();
                                  if (selectedKey.isAcceptable()) {
                                       ServerSocketChannel ssc = (ServerSocketChannel) selectedKey.channel();
                                       SocketChannel sc = ssc.accept();
                                       sc.configureBlocking(false);
                                       SelectionKey sk = sc.register(selector, SelectionKey.OP_READ);
                                       sk.attach(new Request());
                                       log("Connection accepted for channel " + sc);
                                  else if (selectedKey.isReadable()) {
                                       log("Key ready for input : " + selectedKey);
                                       taskManager.execute(new RequestTask(this, selectedKey));
                                  i.remove();
                             readyKeys = null;
                        log("Server loop interrupted !");
                   catch(Exception x) {
                        x.printStackTrace();
              private void log(final String text) {
                   System.out.println("SERVER: " + text);
         public static void main(final String[] args) throws Exception {
              Server server = new Server(9001);
              server.start();

    Thanks for the trick. I hope the code will be more readable than my sockets !
    import java.io.*;
    import java.nio.*;
    import java.nio.channels.*;
    import java.nio.channels.spi.*;
    import java.nio.charset.*;
    import java.net.*;
    import java.util.*;
    import net.moon.threads.*;
    public class Nio1 {
         static class Request {
              boolean isCompleted = false;
              int inputs = 0;
              Set workers = new HashSet();
              ByteArrayOutputStream baos = new ByteArrayOutputStream();
              byte p = 0;
              boolean isCompleted() {
                   return isCompleted;
              void countInput() {
                   inputs++;
              void append(final ByteBuffer byteBuffer) {
                   if (isCompleted)
                        throw new IllegalStateException("Request is already completed");
                   workers.add(Thread.currentThread());
                   while (byteBuffer.hasRemaining()) {
                        byte b = byteBuffer.get();
                        baos.write(b);
                        if ((b == '\r') && (p == '\n'))
                             isCompleted = true;
                        p = b;
              int inputs() {
                   return inputs;
              Thread[] workers() {
                   return (Thread[]) workers.toArray(new Thread[0]);
              int size() {
                   return baos.size();
              byte[] getData() {
                   return baos.toByteArray();
              void reset() {
                   isCompleted = false;
                   inputs = 0;
                   baos.reset();
                   workers.clear();
         static private class RequestTask implements Runnable {
             private final static Charset charset = Charset.forName("US-ASCII");
              private final Server server;
              private final SelectionKey selectionKey;
              RequestTask(final Server server, final SelectionKey selectionKey) {
                   this.server = server;
                   this.selectionKey = selectionKey;
              public void run() {
                   log("*** Processing input...");
                   try {
                        SocketChannel channel = (SocketChannel) selectionKey.channel();
    synchronized(channel.blockingLock()) {
                        Request request = (Request) selectionKey.attachment();
                        request.countInput();
                        State state = getState();
                        log("Reading first...");
                        int c = channel.read(state.byteBuffer);
                        log("... Read first : " + c);
                        if (c > 0) {
                             for(;;) {
                                  state.byteBuffer.flip();
                                 request.append(state.byteBuffer);
                                  state.byteBuffer.clear();
                                  if (c < state.byteBuffer.capacity()) break;
                                  log("Reading next...");
                                  c = channel.read(state.byteBuffer);
                                  log("... Read next : " + c);
                                  if (c <= 0) break;
                             if (request.isCompleted()) {
                                  log("Request completed : " + request.inputs());
                                  StringBuffer bodyBuffer = new StringBuffer();
                                  bodyBuffer.append("-----------------------------\r\n");
                                  bodyBuffer.append("Request processed in " + request.inputs() + " inputs\r\n");
                                  bodyBuffer.append("Request size is " + request.size() + " bytes\r\n");
                                  bodyBuffer.append("Participating workers :\r\n");
                                  Thread[] workers = request.workers();
                                  for (int i = 0; i < workers.length; i++)
                                       bodyBuffer.append(" * " + workers[i] + "\r\n");
                                  bodyBuffer.append("-----------------------------\r\n");
                                  StringBuffer headerBuffer = new StringBuffer();
                                  headerBuffer.append("HTTP/1.1 200 OK\r\n");
                                  headerBuffer.append("Server: NIO Server 1\r\n");
                                  headerBuffer.append("Content-Type: text/plain\r\n");
                                  headerBuffer.append("Content-Length: ").append(request.size() + bodyBuffer.length()).append("\r\n");
                                  headerBuffer.append("\r\n");
                                 CharsetEncoder encoder = charset.newEncoder();
                                  channel.write(encoder.encode(CharBuffer.wrap(headerBuffer)));
                                  channel.write(encoder.encode(CharBuffer.wrap(bodyBuffer)));
                                  channel.write(ByteBuffer.wrap(request.getData()));
                                  request.reset();
                        if (c < 0) {
                             selectionKey.attach(null);
                             selectionKey.cancel();
                             log("!!! Connection terminated for channel " + channel);
                   catch(final Exception x) {
                        x.printStackTrace();
                   log("*** Request processed...");
              private State getState() {
                   State state = (State) server.taskManager.getCurrentWorkerState();
                   if (state == null) {
                        state = new State();
                        server.taskManager.setCurrentWorkerState(state);
                   else {
                        state.byteBuffer.clear();
                   return state;
              private void log(final String text) {
                   System.out.println(Thread.currentThread() + " : " + text);
              static class State {
                   ByteBuffer byteBuffer = ByteBuffer.allocateDirect(32);
         static private class Server implements Runnable {
              private final int port;
              private Thread worker;
              private FIFOTaskManager taskManager;
              Server(final int port) {
                   this.port = port;
                   worker = null;
              synchronized void start() throws Exception {
                   if (worker == null) {
                        log("Starting the server...");
                        taskManager = new FIFOTaskManager("Nio1Workers", 24);
                        worker = new Thread(this);
                        worker.start();
                        synchronized(worker) {
                             try {
                                  worker.wait();
                             catch(InterruptedException x) {
                        log("Server started !");
              public void run() {
                   try {
                        log("Server is starting...");
                        Selector selector = SelectorProvider.provider().openSelector();
                        log("Creating listener on port " + port);
                        ServerSocketChannel serverSocketChannel = ServerSocketChannel.open();
                        serverSocketChannel.configureBlocking(false);
                        InetSocketAddress inetSocketAddress = new InetSocketAddress(port);
                        serverSocketChannel.socket().bind(inetSocketAddress);
                        SelectionKey selectionKey = serverSocketChannel.register(selector, SelectionKey.OP_ACCEPT);
                        synchronized(worker) {
                             worker.notify();
                        while (selector.select() >= 0) {
                             Set readyKeys = selector.selectedKeys();
                             log("Keys are ready : " + readyKeys.size());
                             for (Iterator i = readyKeys.iterator(); i.hasNext(); ) {
                                  SelectionKey selectedKey = (SelectionKey) i.next();
                                  if (selectedKey.isAcceptable()) {
                                       ServerSocketChannel ssc = (ServerSocketChannel) selectedKey.channel();
                                       SocketChannel sc = ssc.accept();
                                       sc.configureBlocking(false);
                                       SelectionKey sk = sc.register(selector, SelectionKey.OP_READ);
                                       sk.attach(new Request());
                                       log("Connection accepted for channel " + sc);
                                  else if (selectedKey.isReadable()) {
                                       log("Key ready for input : " + selectedKey);
                                       taskManager.execute(new RequestTask(this, selectedKey));
                                  i.remove();
                             readyKeys = null;
                        log("Server loop interrupted !");
                   catch(Exception x) {
                        x.printStackTrace();
              private void log(final String text) {
                   System.out.println("SERVER: " + text);
         public static void main(final String[] args) throws Exception {
              Server server = new Server(9001);
              server.start();
    }

  • Non-blocking J2EE calls

    We wish to connect fat clients (in our case Powerbuilder) to a J2EE environment (Weblogic). We also need to make some of the calls from the fat client non-blocking (asynchronous). With many clients, JMS was rejected as a mechanism.
    Our first solution, which works as a prototype, was to package a Java bean as an OLE object and deploy it to the client. This bean could make the calls non-blocking. However there are registry issues (the packaging implies a pre-defined directory structure), we need a JRE on every client and 15Mb of weblogic jars (aaargh), so it only really works as a prototype.
    The next (current) solution is a C dll that can be called from Powerbuilder and uses a socket to talk to a Java J2EE Gateway on the server. This Gateway makes the system non-blocking and calls the EJBs. This is clearly easier in terms of configuring the client.
    Ideally we would like to drop the Gateway by finding a non-blocking way to get into J2EE from the C dll but the only methods we have thought of:
    - simulating an HTTP servlet call
    - SOAP
    are synchronous (or appear to be, my knowledge of SOAP is limited).
    Has anyone come across other ways of getting non-blocking communications with J2EE?

    CORBA, this is what it was designed to do, but it is not not a light weight solution.

  • PS does not Provide WSDL for RTNGTYPE Synchronous Non Blocking

    Hi,
    This particular field has 5 Translate values. Of which PS does not provide an example/entry for RTNGTYPE Synchronous Non Blocking Routing in either FSCM or CRM Demo Database.
    Would like to know, if some one has created a Routing Type of Synchronous Non Blocking and implemented that.
    The reason being, that for Service Ops with the RTNGTYPE as Synchronous Non Blocking, PS does not allow us to generate WSDLs...Also, Not sure how to create a Sync Non Blocking Routing for a Sv Op in PS...
    Any help is appreciated...
    Thanks
    Prashant

    Are you sure you have uploaded everything in the gallery folder to the correct location. It can't find the index.html page.

  • Both blocking and non-blocking io

    I'm wondering if this scenario is possible with the new nio classes:
    I have a caching server. Clients connect to the server and occasionally send requests for objects. I'd like to use the nio non-blocking APIs to detect that there is a read pending on a socket. However, once I detect this, I'd like to go into a blocking loop to process the request. After this done, I'd like to go back into non-blocking mode and wait for another request.
    It seems like this should be possible but the (woefully lacking) documentation isn't clear. Neither is the source code, apparently.
    I've got a test case working but I was hoping someone could validate for me that this is support behavior. It's done by waiting for the isReadable() key then calling socket.keyFor(selector).cancel(); and then socket.configureBlocking(true); The reads are then done in blocking mode until the request is done and then the socket is registered with the selector again.
    Thanks for any help on this.

    I have to ask why you would want to mix blocking and non-blocking I/O.
    The only reason you would (IMHO) want to use non-blocking I/O is in a highly concurrent system, to increase the maximum load a system can handle.
    The main reason you would want to use blocking I/O rather than non-blocking I/O would be to minimise the latency for a single request.
    Unfortunately, the two don't seem to mix together very well... by switching a thread to blocking, you decrease the latency for a single request, but increase latency for the other requests due to reduced resources available. Similarly, by switching to blocking, you are requiring a dedicated thread for that request, so limiting the number of concurrent requests that can be serviced.
    That is, it seems to me that using both blocking and non-blocking I/O introduces the weaknesses of both into the system, without gaining much of the benefits of either.
    The above aside, the method you gave looks like it would work as you expect, depending on what you are doing with thread creation/delegation. Did your test case work as expected?

  • Troubles with timeout using java.nio.channels and non-blocking sockets

    Hello.
    I have a server application that employs java.nio.channels with non-blocking sockets.
    The server waits for connections. The client should connect and be first in sending data.
    Timeouts are significant! If client exceeds the allowed time to send data, the server should break the connection.
    The huge trouble I've discovered that I cannot control the timeout when client connects but remains silent.
    My code looks as follows:
    <pre>
    Selector oSel;
    SocketChannel oSockChan;
    Socket oSock;
    SelectionKey oSelKey;
    Iterator<SelectionKey> oItSelKeys;
    int iCurrState, iMask, iCount;
    iCurrState = INT_SERVER_WORKING;
    iMask = SelectionKey.OP_ACCEPT | SelectionKey.OP_CONNECT | SelectionKey.OP_READ | SelectionKey.OP_WRITE;
    while ( iCurrState == INT_SERVER_WORKING )
    try
    *// retrieving next action*
    iCount = oSel.select();
    if ( iCount > 0 )
    oItSelKeys = oSel.selectedKeys().iterator();
    while ( oItSelKeys.hasNext() )
    oSelKey = oItSelKeys.next();
    oItSelKeys.remove();
    if ( oSelKey.isValid() )
    switch ( oSelKey.readyOps() & iMask ) {
    case SelectionKey.OP_ACCEPT :
    oSockChan = oSSockChan.accept();
    oSockChan.configureBlocking(false);
    oSock = oSockChan.socket();
    oSock.setKeepAlive(true);
    oSockChan.register(oSel,SelectionKey.OP_READ,new MyPacket(oSock.getInetAddress(),oSock.getPort()));
    break;
    case SelectionKey.OP_READ :
    oSelKey.interestOps(0);
    ((MyPacket) oSelKey.attachment()).inRequest(); *// preparing request*
    this.getReader().add(oSelKey); *// sending key to reading thread*
    break;
    case SelectionKey.OP_WRITE :
    oSelKey.interestOps(0);
    ((MyRequest) oSelKey.attachment()).inResponse(); *// preparing response*
    this.getWriter().add(oSelKey); *// sending key to writing thread*
    break;
    case SelectionKey.OP_CONNECT :
    default :
    *// nothing to do*
    catch ( IOException oExcept )
    *// do some actions*
    </pre>
    Timeouts are easily controlled by reading and writing threads (see OP_READ and OP_WRITE ).
    But when a client just connects without consequent data send, the state of this connection remains as OP_ACCEPT. The connection remains open for arbitrarily large time and I cannot control it!
    Please help with idea how can I terminate such connections!

    How can I process the keys that weren't selected at the bottom of the loop? Should I use the method keys() ?Yes. Form a new set from keys() and removeAll(selectedKeys()). Do that before you process selectedKeys().
    And the second moment: as I understood a single key may contain several operations simultaneously? Thus I should use several if's (but not if/else 'cause it's the equivalent of switch ... case ).If there is anything unclear about 'your switch statement is invalid. You need an if/else chain' I fail to see what it is. Try reading it again. And if several ifs were really the equivalent of "switch ... case", there wouldn't be a problem in the first place. They're not, and there is.

  • Code::Blocks and gdb's Debug Attach to process; crash

    Hello!
    I've just started using Code::Blocks and very happy with it, but there is one problem: say I have a binary file with debugging symbols, then I try to attach to it using Code::Blocks (Debug>Attach to process); when I enter the PID and press "OK" button - IDE crashes.
    Here is the stacktrace of codeblocks itself from gdb:
    [user@host ~]$ gdb codeblocks
    GNU gdb (GDB) 7.4
    Copyright (C) 2012 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law. Type "show copying"
    and "show warranty" for details.
    This GDB was configured as "i686-pc-linux-gnu".
    For bug reporting instructions, please see:
    <http://www.gnu.org/software/gdb/bugs/>...
    Reading symbols from /usr/bin/codeblocks...(no debugging symbols found)...done.
    (gdb) run
    Starting program: /usr/bin/codeblocks
    [Thread debugging using libthread_db enabled]
    Using host libthread_db library "/lib/libthread_db.so.1".
    [New Thread 0xb1881b40 (LWP 8035)]
    Initialize EditColourSet .....
    [New Thread 0xae6c4b40 (LWP 8036)]
    [New Thread 0xadec3b40 (LWP 8037)]
    [New Thread 0xad6c2b40 (LWP 8038)]
    [New Thread 0xacec1b40 (LWP 8039)]
    Initialize EditColourSet: done.
    Loading toolbar...
    OpenFilesList: loaded
    ThreadSearch: loaded
    lib_finder: loaded
    EnvVars: loaded
    CodeStat: loaded
    ClassWizard: loaded
    HeaderFixup: loaded
    BYOGames: loaded
    CodeSnippets: loaded
    cbDragScroll: loaded
    SymTab: loaded
    CB_Koders: loaded
    HelpPlugin: loaded
    Compiler: loaded
    Debugger: loaded
    wxSmithAui: loaded
    Autosave: loaded
    wxSmith: loaded
    wxSmithMime: loaded
    Profiler: loaded
    ScriptedWizard: loaded
    Valgrind: loaded
    RegExTestbed: loaded
    wxSmithContribItems: loaded
    CppCheck: loaded
    ToDoList: loaded
    [New Thread 0xab9b8b40 (LWP 8040)]
    CodeCompletion: loaded
    FilesExtensionHandler: loaded
    Cccc: loaded
    Exporter: loaded
    AStylePlugin: loaded
    AutoVersioning: loaded
    IncrementalSearch: loaded
    ProjectsImporter: loaded
    cbKeyBinder: loaded
    MouseSap: loaded
    BrowseTracker: loaded
    HexEditor: loaded
    copystrings: loaded
    Open files list plugin activated
    ThreadSearch plugin activated
    Library finder plugin activated
    Environment variables plugin activated
    Code statistics plugin activated
    Class wizard plugin activated
    Header Fixup plugin activated
    BYO Games plugin activated
    Code snippets plugin activated
    DragScroll plugin activated
    Symbol Table Plugin plugin activated
    Koders query plugin activated
    Help plugin plugin activated
    Added compiler "GNU GCC Compiler"
    Added compiler "Intel C/C++ Compiler"
    Added compiler "SDCC Compiler"
    Added compiler "Tiny C Compiler"
    Added compiler "GDC D Compiler"
    Added compiler "Digital Mars D Compiler"
    Added compiler "GNU ARM GCC Compiler"
    Added compiler "GNU AVR GCC Compiler"
    Added compiler "GNU GCC Compiler for PowerPC"
    Added compiler "GNU GCC Compiler for TriCore"
    Compiler plugin activated
    Debugger plugin activated
    wxSmith - Aui plugin activated
    Autosave plugin activated
    wxSmith plugin activated
    wxSmith - MIME plugin plugin activated
    Code profiler plugin activated
    Project wizard added for 'Empty project'
    Project wizard added for 'Console application'
    Project wizard added for 'D application'
    Project wizard added for 'FLTK project'
    Project wizard added for 'GLFW project'
    Project wizard added for 'GLUT project'
    Project wizard added for 'GTK+ project'
    Project wizard added for 'Irrlicht project'
    Project wizard added for 'Lightfeather project'
    Project wizard added for 'OpenGL project'
    Project wizard added for 'Ogre project'
    Project wizard added for 'Code::Blocks plugin'
    Project wizard added for 'QT4 project'
    Project wizard added for 'SDL project'
    Project wizard added for 'SFML project'
    Project wizard added for 'Static library'
    Project wizard added for 'Shared library'
    Project wizard added for 'wxWidgets project'
    Build-target wizard added for 'Console'
    Build-target wizard added for 'Static library'
    Build-target wizard added for 'wxWidgets'
    Project wizard added for 'ARM Project'
    Project wizard added for 'AVR Project'
    Project wizard added for 'TriCore Project'
    Project wizard added for 'PowerPC Project'
    File(s) wizard added for 'Empty file'
    File(s) wizard added for 'C/C++ source'
    File(s) wizard added for 'C/C++ header'
    Scripted wizard plugin activated
    Valgrind plugin activated
    Regular expressions testbed plugin activated
    wxSmith - Contrib Items plugin activated
    CppCheck plugin activated
    Todo List plugin activated
    Code completion plugin activated
    Files extension handler plugin activated
    Cccc plugin activated
    Source Exporter plugin activated
    Source code formatter (AStyle) plugin activated
    AutoVersioning plugin activated
    IncrementalSearch plugin activated
    Foreign projects importer plugin activated
    Keyboard shortcuts plugin activated
    MouseSap plugin activated
    BrowseTracker plugin activated
    HexEditor plugin activated
    Copy Strings to clipboard plugin activated
    Initializing plugins...
    [New Thread 0xaaddcb40 (LWP 8047)]
    Program received signal SIGSEGV, Segmentation fault.
    0xb75237aa in wxStringBase::operator=(wxStringBase const&) () from /usr/lib/libwx_baseu-2.8.so.0
    (gdb) backtrace
    #0 0xb75237aa in wxStringBase::operator=(wxStringBase const&) () from /usr/lib/libwx_baseu-2.8.so.0
    #1 0xabee2133 in DebuggerGDB::Debug() () from /usr/lib/codeblocks/plugins/libdebugger.so
    #2 0xabed197b in DebuggerGDB::OnAttachToProcess(wxCommandEvent&) () from /usr/lib/codeblocks/plugins/libdebugger.so
    #3 0xb74ce9f8 in wxAppConsole::HandleEvent(wxEvtHandler*, void (wxEvtHandler::*)(wxEvent&), wxEvent&) const () from /usr/lib/libwx_baseu-2.8.so.0
    #4 0xb755e59a in wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
    #5 0xb755e71b in wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*) () from /usr/lib/libwx_baseu-2.8.so.0
    #6 0xb755ead1 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
    #7 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
    #8 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
    #9 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
    #10 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
    #11 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
    #12 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
    #13 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
    #14 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
    #15 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
    #16 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
    #17 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
    #18 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
    #19 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
    #20 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
    #21 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
    #22 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
    #23 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
    #24 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
    #25 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
    #26 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
    #27 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
    #28 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
    #29 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
    #30 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
    #31 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
    #32 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
    #33 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
    #34 0xb755ea61 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0
    #35 0xb778cfb7 in ?? () from /usr/lib/libwx_gtk2u_core-2.8.so.0
    #36 0xb6a2016c in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0
    #37 0xb6a1ec5c in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
    #38 0xb6a31a10 in ?? () from /usr/lib/libgobject-2.0.so.0
    #39 0xb6a3a7a7 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
    #40 0xb6a3a913 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
    #41 0xb6d7d6c5 in gtk_widget_activate () from /usr/lib/libgtk-x11-2.0.so.0
    #42 0xb6c5b3c7 in gtk_menu_shell_activate_item () from /usr/lib/libgtk-x11-2.0.so.0
    #43 0xb6c5b7d1 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
    #44 0xb6c4fb2d in ?? () from /usr/lib/libgtk-x11-2.0.so.0
    #45 0xb6c46762 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
    #46 0xb6a1d6ad in ?? () from /usr/lib/libgobject-2.0.so.0
    #47 0xb6a1ec5c in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
    #48 0xb6a31858 in ?? () from /usr/lib/libgobject-2.0.so.0
    #49 0xb6a3a5b9 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
    #50 0xb6a3a913 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
    #51 0xb6d7e743 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
    #52 0xb6c4492e in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
    #53 0xb6c44cc0 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
    #54 0xb6ab9078 in ?? () from /usr/lib/libgdk-x11-2.0.so.0
    #55 0xb693907f in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
    #56 0xb69397b0 in ?? () from /usr/lib/libglib-2.0.so.0
    #57 0xb6939dbb in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
    #58 0xb6c43a5f in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
    #59 0xb772ad8a in wxEventLoop::Run() () from /usr/lib/libwx_gtk2u_core-2.8.so.0
    #60 0xb77a6c1f in wxAppBase::MainLoop() () from /usr/lib/libwx_gtk2u_core-2.8.so.0
    #61 0xb77a64af in wxAppBase::OnRun() () from /usr/lib/libwx_gtk2u_core-2.8.so.0
    #62 0x08074566 in ?? ()
    #63 0xb7504ac6 in wxEntry(int&, wchar_t**) () from /usr/lib/libwx_baseu-2.8.so.0
    #64 0xb7504b66 in wxEntry(int&, char**) () from /usr/lib/libwx_baseu-2.8.so.0
    #65 0x0806c597 in ?? ()
    #66 0xb71db3d5 in __libc_start_main () from /lib/libc.so.6
    #67 0x08073d3d in ?? ()
    (gdb)
    Here is the XML file (debug report) that CodeBlocks gave to me after crash:
    <?xml version="1.0" encoding="utf-8"?>
    <report version="1.0" kind="exception">
    <system description="Linux 3.3.2-1-ARCH i686"/>
    <modules>
    <module path="/usr/bin/codeblocks" address="08048000" size="0008f000"/>
    <module path="/usr/bin/codeblocks" address="080dc000" size="00003000"/>
    <module path="[heap]" address="087ef000" size="0138e000"/>
    <module path="/usr/share/fonts/TTF/DejaVuSansMono-Bold.ttf" address="aa53f000" size="0004d000"/>
    <module path="/usr/lib/codeblocks/plugins/libHexEditor.so" address="aa5f7000" size="00001000"/>
    <module path="/usr/lib/codeblocks/plugins/libHexEditor.so" address="aa5fb000" size="00001000"/>
    <module path="/usr/lib/codeblocks/plugins/libBrowseTracker.so" address="aa631000" size="00002000"/>
    <module path="/usr/lib/codeblocks/plugins/libMouseSap.so" address="aa634000" size="0000a000"/>
    <module path="/usr/lib/codeblocks/plugins/libMouseSap.so" address="aa63f000" size="00001000"/>
    <module path="/usr/lib/codeblocks/plugins/libkeybinder.so" address="aa676000" size="00002000"/>
    <module path="/usr/lib/codeblocks/plugins/libprojectsimporter.so" address="aa679000" size="0002a000"/>
    <module path="/usr/lib/codeblocks/plugins/libprojectsimporter.so" address="aa6a4000" size="00001000"/>
    <module path="/usr/lib/codeblocks/plugins/libAutoVersioning.so" address="aa6de000" size="00002000"/>
    <module path="/usr/lib/codeblocks/plugins/libastyle.so" address="aa6e1000" size="0003c000"/>
    <module path="/usr/lib/codeblocks/plugins/libastyle.so" address="aa71e000" size="00001000"/>
    <module path="/usr/lib/codeblocks/plugins/libexporter.so" address="aa7df000" size="00003000"/>
    <module path="/usr/lib/codeblocks/plugins/libdefaultmimehandler.so" address="aa7e8000" size="00015000"/>
    <module path="/usr/lib/codeblocks/plugins/libdefaultmimehandler.so" address="aa7ff000" size="00001000"/>
    <module path="/usr/lib/codeblocks/plugins/libIncrementalSearch.so" address="aa902000" size="00013000"/>
    <module path="/usr/lib/codeblocks/plugins/libIncrementalSearch.so" address="aa916000" size="00001000"/>
    <module path="/usr/lib/codeblocks/plugins/libcodecompletion.so" address="ab118000" size="000a7000"/>
    <module path="/usr/lib/codeblocks/plugins/libcodecompletion.so" address="ab1c2000" size="00001000"/>
    <module path="/usr/lib/codeblocks/plugins/libtodo.so" address="ab1c4000" size="00023000"/>
    <module path="/usr/lib/codeblocks/plugins/libtodo.so" address="ab1e8000" size="00002000"/>
    <module path="/usr/lib/codeblocks/plugins/libCppCheck.so" address="ab1eb000" size="0000c000"/>
    <module path="/usr/lib/codeblocks/plugins/libCppCheck.so" address="ab1f8000" size="00001000"/>
    <module path="/usr/lib/wxSmithContribItems/libwxchartctrl.so.0.0.1" address="ab220000" size="00001000" version="0.0.1"/>
    <module path="/usr/lib/wxSmithContribItems/libwxchartctrl.so.0.0.1" address="ab223000" size="00001000" version="0.0.1"/>
    <module path="/usr/lib/codeblocks/plugins/libwxsmithcontribitems.so" address="ab24b000" size="00001000"/>
    <module path="/usr/lib/codeblocks/plugins/libRegExTestbed.so" address="ab24e000" size="0000d000"/>
    <module path="/usr/lib/codeblocks/plugins/libRegExTestbed.so" address="ab25c000" size="00001000"/>
    <module path="/usr/lib/codeblocks/plugins/libscriptedwizard.so" address="ab2a9000" size="00004000"/>
    <module path="/usr/lib/codeblocks/plugins/libProfiler.so" address="ab2ae000" size="0001a000"/>
    <module path="/usr/lib/codeblocks/plugins/libProfiler.so" address="ab2c9000" size="00001000"/>
    <module path="/usr/lib/libwxsmithlib.so.0.0.1" address="ab554000" size="00015000" version="0.0.1"/>
    <module path="/usr/lib/codeblocks/plugins/libValgrind.so" address="ab581000" size="0000d000"/>
    <module path="/usr/lib/codeblocks/plugins/libValgrind.so" address="ab58f000" size="00001000"/>
    <module path="/usr/lib/codeblocks/plugins/libautosave.so" address="ab59d000" size="00001000"/>
    <module path="/usr/lib/codeblocks/plugins/libwxSmithAui.so" address="ab59f000" size="00049000"/>
    <module path="/usr/lib/codeblocks/plugins/libwxSmithAui.so" address="ab5e9000" size="00003000"/>
    <module path="/usr/lib/codeblocks/plugins/libdebugger.so" address="ab5ef000" size="00097000"/>
    <module path="/usr/lib/codeblocks/plugins/libdebugger.so" address="ab68c000" size="00001000"/>
    <module path="/usr/lib/codeblocks/plugins/libcompiler.so" address="ab68e000" size="0011c000"/>
    <module path="/usr/lib/codeblocks/plugins/libcompiler.so" address="ab7ad000" size="00001000"/>
    <module path="/usr/lib/codeblocks/plugins/libhelp_plugin.so" address="ab7b0000" size="0010d000"/>
    <module path="/usr/lib/codeblocks/plugins/libhelp_plugin.so" address="ab8be000" size="00004000"/>
    <module path="/usr/lib/codeblocks/plugins/libcb_koders.so" address="ab8c8000" size="00012000"/>
    <module path="/usr/lib/codeblocks/plugins/libcb_koders.so" address="ab8db000" size="00001000"/>
    <module path="/usr/lib/codeblocks/plugins/libSymTab.so" address="ab8f6000" size="00001000"/>
    <module path="/usr/lib/codeblocks/plugins/libdragscroll.so" address="ab8f8000" size="0001c000"/>
    <module path="/usr/lib/codeblocks/plugins/libdragscroll.so" address="ab916000" size="00001000"/>
    <module path="/usr/lib/codeblocks/plugins/libcodesnippets.so" address="aba1a000" size="00007000"/>
    <module path="/usr/lib/codeblocks/plugins/libbyogames.so" address="aba25000" size="00027000"/>
    <module path="/usr/lib/codeblocks/plugins/libbyogames.so" address="aba4f000" size="00001000"/>
    <module path="/usr/lib/codeblocks/plugins/libheaderfixup.so" address="abb0b000" size="00002000"/>
    <module path="/usr/lib/codeblocks/plugins/libclasswizard.so" address="abb0e000" size="00018000"/>
    <module path="/usr/lib/codeblocks/plugins/libclasswizard.so" address="abb27000" size="00001000"/>
    <module path="/usr/lib/codeblocks/plugins/libcodestat.so" address="abb3c000" size="00001000"/>
    <module path="/usr/lib/wxSmithContribItems/libwxflatnotebook.so.0.0.1" address="abb3e000" size="0003e000" version="0.0.1"/>
    <module path="/usr/lib/wxSmithContribItems/libwxflatnotebook.so.0.0.1" address="abb7e000" size="00002000" version="0.0.1"/>
    <module path="/usr/lib/codeblocks/plugins/liblib_finder.so" address="abbf0000" size="00003000"/>
    <module path="/usr/lib/codeblocks/plugins/libThreadSearch.so" address="abbf4000" size="0004a000"/>
    <module path="/usr/lib/codeblocks/plugins/libThreadSearch.so" address="abc41000" size="00001000"/>
    <module path="/usr/lib/codeblocks/plugins/libopenfileslist.so" address="abc43000" size="00009000"/>
    <module path="/usr/lib/codeblocks/plugins/libopenfileslist.so" address="abc4d000" size="00001000"/>
    <module path="/usr/share/fonts/TTF/DejaVuSansMono.ttf" address="abcae000" size="00052000"/>
    <module path="/usr/lib/codeblocks/plugins/libcopystrings.so" address="abe00000" size="00007000"/>
    <module path="/usr/lib/codeblocks/plugins/libcopystrings.so" address="abe08000" size="00001000"/>
    <module path="/usr/lib/codeblocks/plugins/libenvvars.so" address="abe23000" size="00001000"/>
    <module path="/usr/lib/wxSmithContribItems/libwxcustombutton.so.0.0.1" address="abe25000" size="0000a000" version="0.0.1"/>
    <module path="/usr/lib/wxSmithContribItems/libwxcustombutton.so.0.0.1" address="abe30000" size="00001000" version="0.0.1"/>
    <module path="/usr/share/mime/mime.cache" address="ade35000" size="0001f000"/>
    <module path="/usr/lib/libgvfscommon.so.0.0.0" address="ade6a000" size="00001000" version="0.0.0"/>
    <module path="/usr/lib/codeblocks/plugins/libCccc.so" address="ade6c000" size="00007000"/>
    <module path="/usr/lib/codeblocks/plugins/libCccc.so" address="ade74000" size="00001000"/>
    <module path="/usr/share/mime/mime.cache" address="ade76000" size="0001f000"/>
    <module path="/usr/lib/gio/modules/libgvfsdbus.so" address="adebf000" size="00001000"/>
    <module path="/usr/local/share/icons/hicolor/icon-theme.cache" address="adec1000" size="00091000"/>
    <module path="/usr/share/icons/hicolor/icon-theme.cache" address="af2a9000" size="01357000"/>
    <module path="/usr/lib/codeblocks/plugins/libwxsmith.so" address="b0701000" size="00002000"/>
    <module path="/usr/lib/codeblocks/plugins/libwxsmith.so" address="b0704000" size="00001000"/>
    <module path="/usr/share/fonts/TTF/DejaVuSans.ttf" address="b0721000" size="000b0000"/>
    <module path="/usr/share/locale/ru/LC_MESSAGES/gdk-pixbuf.mo" address="b07d4000" size="00008000"/>
    <module path="/dev/shm/pulse-shm-3776743730" address="b0fdd000" size="04001000"/>
    <module path="/lib/libnsl-2.15.so" address="b4ff3000" size="00001000" version="2.15"/>
    <module path="/usr/lib/libvorbisenc.so.2.0.9" address="b4ff7000" size="00166000" version="2.0.9"/>
    <module path="/usr/lib/libvorbisenc.so.2.0.9" address="b516e000" size="00001000" version="2.0.9"/>
    <module path="/usr/lib/libFLAC.so.8.2.0" address="b51be000" size="00001000" version="8.2.0"/>
    <module path="/usr/lib/libasyncns.so.0.3.1" address="b51c4000" size="00001000" version="0.3.1"/>
    <module path="/usr/lib/libsndfile.so.1.0.25" address="b51c6000" size="0006c000" version="1.0.25"/>
    <module path="/usr/lib/libsndfile.so.1.0.25" address="b5233000" size="00001000" version="1.0.25"/>
    <module path="/usr/lib/libdbus-1.so.3.5.9" address="b5238000" size="00048000" version="3.5.9"/>
    <module path="/usr/lib/libdbus-1.so.3.5.9" address="b5281000" size="00001000" version="3.5.9"/>
    <module path="/usr/lib/libpulsecommon-1.1.so" address="b52e7000" size="00001000" version="1.1"/>
    <module path="/usr/lib/libpulse.so.0.13.5" address="b52e9000" size="0004c000" version="0.13.5"/>
    <module path="/usr/lib/libpulse.so.0.13.5" address="b5336000" size="00001000" version="0.13.5"/>
    <module path="/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-xpm.so" address="b533f000" size="00001000" version="xpm"/>
    <module path="/usr/lib/libudev.so.0.13.1" address="b5341000" size="0000e000" version="0.13.1"/>
    <module path="/usr/lib/libudev.so.0.13.1" address="b5350000" size="00001000" version="0.13.1"/>
    <module path="/usr/lib/libcanberra-0.28/libcanberra-pulse.so" address="b5360000" size="00006000" version="pulse"/>
    <module path="/usr/lib/libcanberra-0.28/libcanberra-pulse.so" address="b5367000" size="00001000" version="pulse"/>
    <module path="/var/cache/fontconfig/f6b893a7224233d96cb72fd88691c0b4-le32d4.cache-3" address="b540d000" size="0002a000"/>
    <module path="/var/cache/fontconfig/df311e82a1a24c41a75c2c930223552e-le32d4.cache-3" address="b5478000" size="00041000"/>
    <module path="/usr/lib/gtk-2.0/2.10.0/engines/libclearlooks.so" address="b5519000" size="0002f000" version="2.0/2.10.0/engines/libclearlooks"/>
    <module path="/usr/lib/gtk-2.0/2.10.0/engines/libclearlooks.so" address="b5549000" size="00001000" version="2.0/2.10.0/engines/libclearlooks"/>
    <module path="/usr/lib/libltdl.so.7.3.0" address="b5553000" size="00001000" version="7.3.0"/>
    <module path="/usr/lib/libtdb.so.1.2.9" address="b5555000" size="00011000" version="1.2.9"/>
    <module path="/usr/lib/libtdb.so.1.2.9" address="b5567000" size="00001000" version="1.2.9"/>
    <module path="/usr/lib/libogg.so.0.8.0" address="b556e000" size="00001000" version="0.8.0"/>
    <module path="/usr/lib/libvorbis.so.0.4.6" address="b5599000" size="00001000" version="0.4.6"/>
    <module path="/usr/lib/libvorbisfile.so.3.3.5" address="b559b000" size="00008000" version="3.3.5"/>
    <module path="/usr/lib/libvorbisfile.so.3.3.5" address="b55a4000" size="00001000" version="3.3.5"/>
    <module path="/usr/lib/libcanberra.so.0.2.5" address="b55b5000" size="00001000" version="0.2.5"/>
    <module path="/usr/lib/libcanberra-gtk.so.0.1.8" address="b55b7000" size="00004000" version="0.1.8"/>
    <module path="/usr/lib/libcanberra-gtk.so.0.1.8" address="b55bc000" size="00001000" version="0.1.8"/>
    <module path="/lib/libnss_files-2.15.so" address="b55f3000" size="0000b000" version="2.15"/>
    <module path="/lib/libnss_files-2.15.so" address="b55ff000" size="00001000" version="2.15"/>
    <module path="/usr/lib/libjson.so.0.0.1" address="b5603000" size="00007000" version="0.0.1"/>
    <module path="/usr/lib/libjson.so.0.0.1" address="b560b000" size="00001000" version="0.0.1"/>
    <module path="/var/cache/fontconfig/a98d8961fa319a64d3cfd8640c79e62d-le32d4.cache-3" address="b561c000" size="00007000"/>
    <module path="/usr/share/locale/ru/LC_MESSAGES/libc.mo" address="b5629000" size="0002e000"/>
    <module path="/usr/lib/locale/locale-archive" address="b5788000" size="00200000"/>
    <module path="/lib/libbz2.so.1.0.6" address="b598e000" size="0000f000" version="1.0.6"/>
    <module path="/lib/libresolv-2.15.so" address="b599e000" size="00013000" version="2.15"/>
    <module path="/lib/libresolv-2.15.so" address="b59b2000" size="00001000" version="2.15"/>
    <module path="/usr/lib/libpixman-1.so.0.24.4" address="b59b5000" size="00093000" version="0.24.4"/>
    <module path="/usr/lib/libpixman-1.so.0.24.4" address="b5a4c000" size="00001000" version="0.24.4"/>
    <module path="/usr/lib/libfreetype.so.6.8.1" address="b5ae4000" size="00004000" version="6.8.1"/>
    <module path="/usr/lib/libXdmcp.so.6.0.0" address="b5ae9000" size="00005000" version="6.0.0"/>
    <module path="/usr/lib/libXdmcp.so.6.0.0" address="b5aef000" size="00001000" version="6.0.0"/>
    <module path="/usr/lib/libXau.so.6.0.0" address="b5af1000" size="00002000" version="6.0.0"/>
    <module path="/usr/lib/libXau.so.6.0.0" address="b5af4000" size="00001000" version="6.0.0"/>
    <module path="/usr/lib/liblzma.so.5.0.3" address="b5b1a000" size="00001000" version="5.0.3"/>
    <module path="/usr/lib/libuuid.so.1.3.0" address="b5b1c000" size="00004000" version="1.3.0"/>
    <module path="/usr/lib/libuuid.so.1.3.0" address="b5b21000" size="00001000" version="1.3.0"/>
    <module path="/usr/lib/libICE.so.6.3.0" address="b5b38000" size="00001000" version="6.3.0"/>
    <module path="/usr/lib/libffi.so.5.0.10" address="b5b3c000" size="00005000" version="5.0.10"/>
    <module path="/usr/lib/libffi.so.5.0.10" address="b5b42000" size="00001000" version="5.0.10"/>
    <module path="/lib/librt-2.15.so" address="b5b44000" size="00007000" version="2.15"/>
    <module path="/lib/librt-2.15.so" address="b5b4c000" size="00001000" version="2.15"/>
    <module path="/usr/lib/libpcre.so.1.0.0" address="b5ba7000" size="00001000" version="1.0.0"/>
    <module path="/usr/lib/libpcre.so.1.0.0" address="b5ba9000" size="00001000" version="1.0.0"/>
    <module path="/usr/lib/libXdamage.so.1.1.0" address="b5bac000" size="00001000" version="1.1.0"/>
    <module path="/usr/lib/libXcomposite.so.1.0.0" address="b5bae000" size="00002000" version="1.0.0"/>
    <module path="/usr/lib/libXcomposite.so.1.0.0" address="b5bb1000" size="00001000" version="1.0.0"/>
    <module path="/usr/lib/libXcursor.so.1.0.2" address="b5bbb000" size="00001000" version="1.0.2"/>
    <module path="/usr/lib/libXrandr.so.2.2.0" address="b5bbe000" size="00007000" version="2.2.0"/>
    <module path="/usr/lib/libXrandr.so.2.2.0" address="b5bc6000" size="00001000" version="2.2.0"/>
    <module path="/usr/lib/libXi.so.6.1.0" address="b5bd5000" size="00001000" version="6.1.0"/>
    <module path="/usr/lib/libXrender.so.1.3.0" address="b5bd7000" size="00009000" version="1.3.0"/>
    <module path="/usr/lib/libXrender.so.1.3.0" address="b5be1000" size="00001000" version="1.3.0"/>
    <module path="/usr/lib/libXext.so.6.4.0" address="b5bf3000" size="00001000" version="6.4.0"/>
    <module path="/usr/lib/libgmodule-2.0.so.0.3000.2" address="b5bf5000" size="00003000" version="0.3000.2"/>
    <module path="/usr/lib/libgmodule-2.0.so.0.3000.2" address="b5bf9000" size="00001000" version="0.3000.2"/>
    <module path="/usr/lib/libfontconfig.so.1.4.4" address="b5bfb000" size="00033000" version="1.4.4"/>
    <module path="/usr/lib/libfontconfig.so.1.4.4" address="b5c2f000" size="00001000" version="1.4.4"/>
    <module path="/usr/lib/libpangoft2-1.0.so.0.2904.0" address="b5c5c000" size="00001000" version="0.2904.0"/>
    <module path="/usr/lib/libgio-2.0.so.0.3000.2" address="b5c5e000" size="00140000" version="0.3000.2"/>
    <module path="/usr/lib/libgio-2.0.so.0.3000.2" address="b5da0000" size="00001000" version="0.3000.2"/>
    <module path="/usr/lib/libcairo.so.2.11000.2" address="b5da2000" size="000b4000" version="2.11000.2"/>
    <module path="/usr/lib/libcairo.so.2.11000.2" address="b5e57000" size="00001000" version="2.11000.2"/>
    <module path="/usr/lib/libatk-1.0.so.0.20209.1" address="b5e5a000" size="0001e000" version="0.20209.1"/>
    <module path="/usr/lib/libatk-1.0.so.0.20209.1" address="b5e7a000" size="00001000" version="0.20209.1"/>
    <module path="/usr/lib/libXfixes.so.3.1.0" address="b5e7c000" size="00004000" version="3.1.0"/>
    <module path="/usr/lib/libXfixes.so.3.1.0" address="b5e81000" size="00001000" version="3.1.0"/>
    <module path="/usr/lib/libpangocairo-1.0.so.0.2904.0" address="b5e8d000" size="00001000" version="0.2904.0"/>
    <module path="/usr/lib/libxcb.so.1.1.0" address="b5e8f000" size="00020000" version="1.1.0"/>
    <module path="/usr/lib/libxcb.so.1.1.0" address="b5eb0000" size="00001000" version="1.1.0"/>
    <module path="/usr/lib/libexpat.so.1.6.0" address="b5ed7000" size="00001000" version="1.6.0"/>
    <module path="/usr/lib/libexpat.so.1.6.0" address="b5eda000" size="00001000" version="1.6.0"/>
    <module path="/usr/lib/libz.so.1.2.6" address="b5ef0000" size="00001000" version="1.2.6"/>
    <module path="/usr/lib/libtiff.so.5.0.6" address="b5ef3000" size="0006f000" version="5.0.6"/>
    <module path="/usr/lib/libtiff.so.5.0.6" address="b5f63000" size="00002000" version="5.0.6"/>
    <module path="/usr/lib/libjpeg.so.8.0.2" address="b5f66000" size="00045000" version="8.0.2"/>
    <module path="/usr/lib/libjpeg.so.8.0.2" address="b5fac000" size="00001000" version="8.0.2"/>
    <module path="/usr/lib/libpng15.so.15.10.0" address="b5fbd000" size="0002e000" version="15.10.0"/>
    <module path="/usr/lib/libpng15.so.15.10.0" address="b5fec000" size="00001000" version="15.10.0"/>
    <module path="/usr/lib/libSM.so.6.0.1" address="b5ff4000" size="00001000" version="6.0.1"/>
    <module path="/usr/lib/libXxf86vm.so.1.0.0" address="b5ff6000" size="00004000" version="1.0.0"/>
    <module path="/usr/lib/libXxf86vm.so.1.0.0" address="b5ffb000" size="00001000" version="1.0.0"/>
    <module path="/usr/lib/libXinerama.so.1.0.0" address="b5ffe000" size="00001000" version="1.0.0"/>
    <module path="/usr/lib/libgthread-2.0.so.0.3000.2" address="b6001000" size="00004000" version="0.3000.2"/>
    <module path="/usr/lib/libgthread-2.0.so.0.3000.2" address="b6006000" size="00001000" version="0.3000.2"/>
    <module path="/usr/lib/libpango-1.0.so.0.2904.0" address="b604f000" size="00001000" version="0.2904.0"/>
    <module path="/usr/lib/libglib-2.0.so.0.3000.2" address="b6051000" size="000f6000" version="0.3000.2"/>
    <module path="/usr/lib/libglib-2.0.so.0.3000.2" address="b6148000" size="00001000" version="0.3000.2"/>
    <module path="/usr/lib/libgdk_pixbuf-2.0.so.0.2400.1" address="b616b000" size="00001000" version="0.2400.1"/>
    <module path="/usr/lib/libgobject-2.0.so.0.3000.2" address="b616d000" size="0004c000" version="0.3000.2"/>
    <module path="/usr/lib/libgobject-2.0.so.0.3000.2" address="b61ba000" size="00001000" version="0.3000.2"/>
    <module path="/usr/lib/libgdk-x11-2.0.so.0.2400.10" address="b61bc000" size="000ab000" version="0.2400.10"/>
    <module path="/usr/lib/libgdk-x11-2.0.so.0.2400.10" address="b6269000" size="00001000" version="0.2400.10"/>
    <module path="/usr/lib/libgtk-x11-2.0.so.0.2400.10" address="b66be000" size="00001000" version="0.2400.10"/>
    <module path="/usr/lib/libgtk-x11-2.0.so.0.2400.10" address="b66c3000" size="00002000" version="0.2400.10"/>
    <module path="/lib/libm-2.15.so" address="b66c7000" size="0002a000" version="2.15"/>
    <module path="/lib/libm-2.15.so" address="b66f2000" size="00001000" version="2.15"/>
    <module path="/lib/libdl-2.15.so" address="b66f6000" size="00001000" version="2.15"/>
    <module path="/usr/lib/libX11.so.6.3.0" address="b66f8000" size="00132000" version="6.3.0"/>
    <module path="/usr/lib/libX11.so.6.3.0" address="b682b000" size="00001000" version="6.3.0"/>
    <module path="/usr/lib/libwx_baseu_xml-2.8.so.0.8.0" address="b682f000" size="00008000" version="0.8.0"/>
    <module path="/usr/lib/libwx_baseu_xml-2.8.so.0.8.0" address="b6838000" size="00001000" version="0.8.0"/>
    <module path="/usr/lib/libwx_gtk2u_richtext-2.8.so.0.8.0" address="b683a000" size="000da000" version="0.8.0"/>
    <module path="/usr/lib/libwx_gtk2u_richtext-2.8.so.0.8.0" address="b691a000" size="00001000" version="0.8.0"/>
    <module path="/lib/libc-2.15.so" address="b691d000" size="0019b000" version="2.15"/>
    <module path="/lib/libc-2.15.so" address="b6ab9000" size="00002000" version="2.15"/>
    <module path="/usr/lib/libgcc_s.so.1" address="b6abf000" size="0001c000" version="1"/>
    <module path="/usr/lib/libstdc++.so.6.0.17" address="b6adc000" size="000dc000" version="6.0.17"/>
    <module path="/usr/lib/libstdc++.so.6.0.17" address="b6bbc000" size="00001000" version="6.0.17"/>
    <module path="/lib/libpthread-2.15.so" address="b6bc4000" size="00017000" version="2.15"/>
    <module path="/lib/libpthread-2.15.so" address="b6bdc000" size="00001000" version="2.15"/>
    <module path="/usr/lib/libwx_baseu-2.8.so.0.8.0" address="b6be0000" size="00136000" version="0.8.0"/>
    <module path="/usr/lib/libwx_baseu-2.8.so.0.8.0" address="b6d17000" size="00004000" version="0.8.0"/>
    <module path="/usr/lib/libwx_baseu_net-2.8.so.0.8.0" address="b6d26000" size="00029000" version="0.8.0"/>
    <module path="/usr/lib/libwx_baseu_net-2.8.so.0.8.0" address="b6d50000" size="00001000" version="0.8.0"/>
    <module path="/usr/lib/libwx_gtk2u_core-2.8.so.0.8.0" address="b6d52000" size="002f7000" version="0.8.0"/>
    <module path="/usr/lib/libwx_gtk2u_core-2.8.so.0.8.0" address="b704a000" size="00026000" version="0.8.0"/>
    <module path="/usr/lib/libwx_gtk2u_adv-2.8.so.0.8.0" address="b707d000" size="000ab000" version="0.8.0"/>
    <module path="/usr/lib/libwx_gtk2u_adv-2.8.so.0.8.0" address="b7130000" size="00001000" version="0.8.0"/>
    <module path="/usr/lib/libwx_gtk2u_html-2.8.so.0.8.0" address="b7133000" size="00089000" version="0.8.0"/>
    <module path="/usr/lib/libwx_gtk2u_html-2.8.so.0.8.0" address="b71c1000" size="00002000" version="0.8.0"/>
    <module path="/usr/lib/libwx_gtk2u_qa-2.8.so.0.8.0" address="b71c4000" size="00019000" version="0.8.0"/>
    <module path="/usr/lib/libwx_gtk2u_qa-2.8.so.0.8.0" address="b71de000" size="00001000" version="0.8.0"/>
    <module path="/usr/lib/libwx_gtk2u_xrc-2.8.so.0.8.0" address="b71e0000" size="0007a000" version="0.8.0"/>
    <module path="/usr/lib/libwx_gtk2u_xrc-2.8.so.0.8.0" address="b725d000" size="00001000" version="0.8.0"/>
    <module path="/usr/lib/libwx_gtk2u_aui-2.8.so.0.8.0" address="b725f000" size="0005d000" version="0.8.0"/>
    <module path="/usr/lib/libwx_gtk2u_aui-2.8.so.0.8.0" address="b72bf000" size="00001000" version="0.8.0"/>
    <module path="/usr/lib/libcodeblocks.so.0.0.1" address="b72c1000" size="00431000" version="0.0.1"/>
    <module path="/usr/lib/libcodeblocks.so.0.0.1" address="b7703000" size="00005000" version="0.0.1"/>
    <module path="/usr/local/share/mime/mime.cache" address="b770e000" size="00001000"/>
    <module path="/lib/libutil-2.15.so" address="b7711000" size="00001000" version="2.15"/>
    <module path="/usr/lib/gtk-2.0/modules/libcanberra-gtk-module.so" address="b7713000" size="00005000" version="module"/>
    <module path="/usr/lib/gtk-2.0/modules/libcanberra-gtk-module.so" address="b7719000" size="00001000" version="module"/>
    <module path="/usr/lib/gconv/UTF-32.so" address="b7733000" size="00002000" version="32"/>
    <module path="/usr/lib/gconv/UTF-32.so" address="b7736000" size="00001000" version="32"/>
    <module path="[vdso]" address="b7738000" size="00001000"/>
    <module path="/lib/ld-2.15.so" address="b7759000" size="00001000" version="2.15"/>
    </modules>
    <stack>
    <frame level="0" function="wxFatalSignalHandler" offset="00000023"/>
    <frame level="1"/>
    <frame level="2" function="wxStringBase::operator=(wxStringBase const&amp;)" offset="0000001a"/>
    <frame level="3" function="DebuggerGDB::Debug()" offset="000001f3"/>
    <frame level="4" function="DebuggerGDB::OnAttachToProcess(wxCommandEvent&amp;)" offset="0000014b"/>
    <frame level="5" function="wxAppConsole::HandleEvent(wxEvtHandler*, void (wxEvtHandler::*)(wxEvent&amp;), wxEvent&amp;) const" offset="00000028"/>
    <frame level="6" function="wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&amp;, wxEvtHandler*, wxEvent&amp;)" offset="0000007a"/>
    <frame level="7" function="wxEventHashTable::HandleEvent(wxEvent&amp;, wxEvtHandler*)" offset="000000ab"/>
    <frame level="8" function="wxEvtHandler::ProcessEvent(wxEvent&amp;)" offset="000000e1"/>
    <frame level="9" function="wxEvtHandler::ProcessEvent(wxEvent&amp;)" offset="00000071"/>
    <frame level="10" function="wxEvtHandler::ProcessEvent(wxEvent&amp;)" offset="00000071"/>
    <frame level="11" function="wxEvtHandler::ProcessEvent(wxEvent&amp;)" offset="00000071"/>
    <frame level="12" function="wxEvtHandler::ProcessEvent(wxEvent&amp;)" offset="00000071"/>
    <frame level="13" function="wxEvtHandler::ProcessEvent(wxEvent&amp;)" offset="00000071"/>
    <frame level="14" function="wxEvtHandler::ProcessEvent(wxEvent&amp;)" offset="00000071"/>
    <frame level="15" function="wxEvtHandler::ProcessEvent(wxEvent&amp;)" offset="00000071"/>
    <frame level="16" function="wxEvtHandler::ProcessEvent(wxEvent&amp;)" offset="00000071"/>
    <frame level="17" function="wxEvtHandler::ProcessEvent(wxEvent&amp;)" offset="00000071"/>
    <frame level="18" function="wxEvtHandler::ProcessEvent(wxEvent&amp;)" offset="00000071"/>
    <frame level="19" function="wxEvtHandler::ProcessEvent(wxEvent&amp;)" offset="00000071"/>
    <frame level="20" function="wxEvtHandler::ProcessEvent(wxEvent&amp;)" offset="00000071"/>
    <frame level="21" function="wxEvtHandler::ProcessEvent(wxEvent&amp;)" offset="00000071"/>
    <frame level="22" function="wxEvtHandler::ProcessEvent(wxEvent&amp;)" offset="00000071"/>
    <frame level="23" function="wxEvtHandler::ProcessEvent(wxEvent&amp;)" offset="00000071"/>
    <frame level="24" function="wxEvtHandler::ProcessEvent(wxEvent&amp;)" offset="00000071"/>
    <frame level="25" function="wxEvtHandler::ProcessEvent(wxEvent&amp;)" offset="00000071"/>
    <frame level="26" function="wxEvtHandler::ProcessEvent(wxEvent&amp;)" offset="00000071"/>
    <frame level="27" function="wxEvtHandler::ProcessEvent(wxEvent&amp;)" offset="00000071"/>
    <frame level="28" function="wxEvtHandler::ProcessEvent(wxEvent&amp;)" offset="00000071"/>
    <frame level="29" function="wxEvtHandler::ProcessEvent(wxEvent&amp;)" offset="00000071"/>
    <frame level="30" function="wxEvtHandler::ProcessEvent(wxEvent&amp;)" offset="00000071"/>
    <frame level="31" function="wxEvtHandler::ProcessEvent(wxEvent&amp;)" offset="00000071"/>
    <frame level="32" function="wxEvtHandler::ProcessEvent(wxEvent&amp;)" offset="00000071"/>
    <frame level="33" function="wxEvtHandler::ProcessEvent(wxEvent&amp;)" offset="00000071"/>
    <frame level="34" function="wxEvtHandler::ProcessEvent(wxEvent&amp;)" offset="00000071"/>
    <frame level="35" function="wxEvtHandler::ProcessEvent(wxEvent&amp;)" offset="00000071"/>
    <frame level="36" function="wxEvtHandler::ProcessEvent(wxEvent&amp;)" offset="00000071"/>
    <frame level="37"/>
    <frame level="38" function="g_cclosure_marshal_VOID__VOID" offset="0000008c"/>
    <frame level="39" function="g_closure_invoke" offset="000001ac"/>
    <frame level="40"/>
    <frame level="41" function="g_signal_emit_valist" offset="00000777"/>
    <frame level="42" function="g_signal_emit" offset="00000033"/>
    <frame level="43" function="gtk_widget_activate" offset="00000095"/>
    <frame level="44" function="gtk_menu_shell_activate_item" offset="00000117"/>
    <frame level="45"/>
    <frame level="46"/>
    <frame level="47"/>
    <frame level="48"/>
    <frame level="49" function="g_closure_invoke" offset="000001ac"/>
    <frame level="50"/>
    <frame level="51" function="g_signal_emit_valist" offset="00000589"/>
    <frame level="52" function="g_signal_emit" offset="00000033"/>
    <frame level="53"/>
    <frame level="54" function="gtk_propagate_event" offset="000000ce"/>
    <frame level="55" function="gtk_main_do_event" offset="000002c0"/>
    <frame level="56"/>
    <frame level="57" function="g_main_context_dispatch" offset="000001df"/>
    <frame level="58"/>
    <frame level="59" function="g_main_loop_run" offset="0000014b"/>
    <frame level="60" function="gtk_main" offset="000000af"/>
    <frame level="61" function="wxEventLoop::Run()" offset="0000004a"/>
    <frame level="62" function="wxAppBase::MainLoop()" offset="0000004f"/>
    <frame level="63" function="wxAppBase::OnRun()" offset="0000001f"/>
    <frame level="64"/>
    </stack>
    </report>
    I've just wrote a simple helloworld in C, added getchar() to wait, compiled it with "-g" flag and tried to attach to it with this IDE. Tried on 2 machines, different binaries: same result - IDE crashes. Am I doing something wrong, or this is a problem with WxWidgets/Code::Blocks?
    My packages are: wxgtk 2.8.12.1-3, codeblocks 10.05-2 and gdb 7.4-1.
    Last edited by dontbugme (2012-04-24 02:19:16)

    Are you running on an x86_64 architecture?  If so I have a pacman Code::Blocks package which is the current SVN I could upload somewhere for you..
    If not, check: Here to download and make the latest SVN version.  There is a patch you have to apply on that page and also you need to make the build using the makepkg "-fpermissive" option.
    Why do you want this SVN version (version 7932)?  Well, it's current as of April 14 this month.  The C::B 10.05 version is 2010, 5th month.  So way out of date.  There have been no official builds since then so you want to be using SVN until there is.
    I don't know if using the SVN version would fix your issue but even if not: it has a host of other enhancements and fixes.

  • Problem in Execute query on non-database block and database block together

    Hi All,
    In my form,i have
    1. First block is Non-database block with one non-database item.
    2. Second and third blocks are database blocks.
    Now the problem is that i want to perform execute-query for all the blocks.
    If the cursor is on the non-database item of 1st block and i clicks on the "Enter-query" then i am getting message " This function can not be performed here".
    If i click on the item of the database block and then clicks on the "Enter-query" and then "execute-query" it's working fine.
    But i don't want to do in this way.
    My cursor will be on the First block only and then it should perform execute-query.
    I am using this non-database item to copy value of this item to the item of the database block item.
    I think i make you understand about my problem.
    I am using forms 10g on Window xp.
    Please help me.

    Hi!
    Simply create a enter-query trigger on the non-database-block:
    begin
    go_block ( 'database_block' );
    enter_query;
    end;If your search criteria is in the non-database-item in the first block,
    you actually do not need the enter_query build-in.
    Just create a execute-query trigger on the first block like:
    begin
    go_block ( 'database_block' );
    execute_query;
    go_item ( :System.trigger_item );
    end;And in a pre-query trigger on the database-block copy the
    value of your seach item into the item you want to search for.
    Regards

  • Non-Blocking Writing and Strings

    Hello.
    My question is simple, is it possible to write strings using a non-blocking method?
    I was praying that there was a method in the NIO API that allowed me to, yet i can't find one.
    If the answer is blatantly obvious please forgive me, i'm tired and hungry :)
    Thank you for looking at this topic

    Strings are written to files or sockets using a certain encoding. I usually use UTF-8, but your application might be different.
    1. Get the SocketChannel from your non-blocking socket.
    SocketChannel ch = mySocket.getChannel(); // mySocket is java.net.Socket2. Make a CharBuffer out of the String you want to send.
    CharBuffer chars = CharBuffer.wrap(myString); // myString is your data3. Encode it so it becomes a ByteBuffer. I'll use the [UTF-8|http://www.joelonsoftware.com/articles/Unicode.html] Charset here.
    ByteBuffer bytes = Charset.forName("UTF-8").encode(chars);4. Use the write(ByteBuffer) method in the SocketChannel from 1.
    ch.write(bytes);Import declarations:
    import java.nio.channels.SocketChannel;
    import java.nio.CharBuffer;
    import java.nio.ByteBuffer;
    import java.nio.charset.Charset;s

  • OCCI and non-blocking

    I'd like to use the OCCI interface in a non-blocking mode. Does anyone have any experience with this? Looks like I need to use a combo of OCI and OCCI calls to set the OCI_HTYPE_SERVER handle with the OCI_ATTR_NONBLOCKING MODE. However, my stmt->executeQuery() method seems to be throwing an exceptions, which I would have though would have been the OCI_STILL_EXECUTING error, but it's not. The exeception is an "ORA-32103 error from OCI call". If I continue to do another stmt->executeQuery(), I eventually get an access exception.
    Anyone have any code snippets using OCCI in non-blocking mode?

    I use threads. ACE/TAO to be precise.
    I have singleton class that manages the Oracle environment and connection as well as being a statement
    factory.
    Just have a thread perform your stmt->executeXXX() method and you will not need to worry about non-blocking.
    That's how I do it and it works well.

  • Blocking and reporting contacts and non-contacts

    Since switching to skype from MSN messenger i have only really had problems. 
    I have edited my settings so that I have privacy sorted and only my contacts can message me, but i am STILL having messages from a non-contact and have done since the 11th march. I cannot block them because they are not a contact and I cannot report them because they have not added me as a friend. 
    I am constantly barraged by this person and not in the best of tastes. Sort it out Skype! This is not acceptible!! 

    can nobody give me any ideas here? Come on you have someone using your service to make bomb threats...You are the only ones who can pull his information and report him properly.

  • Blocking and non-blocking workflows

    How to specify a workflow to be blocking and non-blocking?
    Regards,
    Miguel

    When registering the custom workflow from Application Server Control (Enterprise Manager Web Site), you will see an option to specify whether the workflow is blocking:
    Application Server Control > Content > Custom Workflows
    Register Workflow
    * Name  
      Description  
    * Launch Event  
    * Cancel Event  
      Blocking
      Approvers Required

  • Non-blocking SocketChannel and close - huh?

    It looks like closing a socketchannel that is in non-blocking mode can result in a dead drop of the connection, with some bytes that have already been sent and accepted (as in, 'consumed' from the buffer) being completely dropped.
    In fact, I'm generally confused: Actual C non-blocking code has a similar setup for 'close' as you can see in SocketChannel's OP_CONNECT behaviour - just because you want to connect the socket doesn't mean it magically happends without blocking. Wait for a ready flag, then try again.
    It should work the same way with close (you try to close, but it may not be possible without blocking).
    Is this a huge gaping bug that no one quite figured out just yet, or did I miss something? I loathe to turn on linger, as that's just a crapshoot (you never know if it actually gets through. You could run into funny surprises once the server gets a bit busy. I'd rather not) and tends to cause massive leaks on linux, at least according to some google searches.
    There seems to be slightly better performance (in that I have always received all data sofar) if I close the socket instead of the channel (socketChannel.socket().close() instead of socketChannel.close()) - but this has been a random attempt at 'making it work', and I can't find any documentation that backs up that this will DEFINITELY not lose any information without letting me know somehow. That still sounds impossible with this approach.

    Actual C non-blocking code has a similar setup for
    'close' as you can see in SocketChannel's
    OP_CONNECT behaviour ...No it doesn't. I don't know what you mean by this.
    Closing a socket is asynchronous, but it shouldn't lose any data - if the data can be delivered it will be, followed by the FIN. You don't know when it is delivered, and you don't get to hear about any errors such as an RST coming from the other end, say if it decided to close before reading all the data, or if some intermediate router hung you up.
    I'm wondering if you are really dealing with all the short write and zero length write possibilities, i.e. whether the data isn't really still in your output buffer. Don't wish to teach you to suck eggs but there are some subtleties here.
    Setting a positive linger timeout doesn't really help because Java doesn't tell you if the timeout expired. (I only asked for this about four years ago). You get to wait while any pending data is delivered, but you still have to guess about whether it all went or the timeout expired, and the behaviour after the timeout expires is platform-dependent: some (Windows) issue an RST, others (Unix) keep trying.
    Blocking or non-blocking mode shouldn't make any difference to this (except that Linux will block on a positive linger timeout even in non-blocking mode, which is wrong), and whether you close the channel or the socket is immaterial as one calls the other anyway.
    The reason why OP_CONNECT is different in blocking/non-blocking modes is that in blocking mode it won't return until the SYN-ACK is received, while in non-blocking mode it just sends the SYN and relies on you calling connect() again (at the C level) to collect the SYN-ACK, or not - this is what finishConnect() tells you.
    tends to cause massive leaks on linux, at least
    according to some google searchesIt can't, unless you are referring to the Helix client thing, which appears to be just a badly designed C++ class library with, for some reason, its own linger implementation outside the kernel.

  • Chaining WritableByteChannels and non-blocking I/O?

    Hello all,
    Suppose I want to implement a data transformation algorithm that works in chunks of say 4 bytes.
    The algorithm would hook into existing I/O paradigms for writing and reading data.
    Ignoring the transformation algorithm for now (it is actually irrelevant for my question), let's just I need to buffer data in 4-byte chunks.
    Since I want to make as little assumptions as possible about the decorated channel, BufferingWritableByteChannel needs to work channels in blocking and in non-blocking mode.
    When the decorated channel is in non-blocking mode, BuffereingWritableByteChannel may behave as in non-blocking mode itself, which is fine by me.
    However the problem is with the residual bytes: they do not get written until the close() method is called.
    I have implemented the close() method to be blocking (the while loop with the ugly yield() calls), so even when the decorated channel is in non-blocking mode everything will get written properly.
    However, writing potentially blocking calls (busy loops) in close() methods seems like a bad idea...
    So the question is:
    Is there a better way of doing this?
    Can I avoid having to write busy loops?
    package nio;
    import java.io.IOException;
    import java.nio.ByteBuffer;
    import java.nio.channels.WritableByteChannel;
    import static nio.ChannelUtils.*;
    public class BufferingWritableByteChannel implements WritableByteChannel {
      private final WritableByteChannel decoratedChannel;
      private final ByteBuffer buffer = ByteBuffer.allocate(4);
      private boolean buffering = true;
      public BufferingWritableByteChannel(WritableByteChannel decoratedChannel) {
        this.decoratedChannel = decoratedChannel;
      public synchronized void close() throws IOException {
        if (buffering) {
          buffer.flip();
        writeBlockingly(decoratedChannel, buffer);
        buffer.clear();
        decoratedChannel.close();
      public synchronized boolean isOpen() {
        return decoratedChannel.isOpen();
      public synchronized int write(ByteBuffer input) throws IOException {
        int bytesWritten = 0;
        if (!buffering) {
          decoratedChannel.write(buffer);
          if (buffer.hasRemaining()) { // May happen when decorated channel in non-blocking mode
            return bytesWritten;
          buffer.clear();
          buffering = true;
        while (input.hasRemaining()) {
          bytesWritten += putAsMuchAsPossible(input, buffer);
          if (!buffer.hasRemaining()) {
            buffer.flip();
            decoratedChannel.write(buffer);
            if (buffer.hasRemaining()) { // May happen when decorated channel in non-blocking mode
              buffering = false;
              return bytesWritten;
            buffer.clear();
        return bytesWritten;
    package nio;
    import java.io.IOException;
    import java.nio.BufferOverflowException;
    import java.nio.ByteBuffer;
    import java.nio.channels.WritableByteChannel;
    public class ChannelUtils {
      private ChannelUtils() {
       * Blockingly writes data to a channel, even if the channel is in non-blocking mode.
      public static final int writeBlockingly(WritableByteChannel channel, ByteBuffer buffer) throws IOException {
        int bytesWritten = 0;
        boolean yield = false;
        while (buffer.hasRemaining()) {
          bytesWritten += channel.write(buffer);
          if (yield)
            Thread.yield();
          else
            yield = true;
        return bytesWritten;
       * Puts as much bytes as possible from an input buffer into an output buffer, avoiding {@link BufferOverflowException}.
      public static final int putAsMuchAsPossible(ByteBuffer input, ByteBuffer output) {
        int bytesWritten = Math.min(input.remaining(), output.remaining());
        ByteBuffer inputSlice = input.slice();
        inputSlice.limit(inputSlice.position() + bytesWritten);
        output.put(inputSlice);
        input.position(input.position() + bytesWritten);
        return bytesWritten;
    }

    Hello all,
    Suppose I want to implement a data transformation algorithm that works in chunks of say 4 bytes.
    The algorithm would hook into existing I/O paradigms for writing and reading data.
    Ignoring the transformation algorithm for now (it is actually irrelevant for my question), let's just I need to buffer data in 4-byte chunks.
    Since I want to make as little assumptions as possible about the decorated channel, BufferingWritableByteChannel needs to work channels in blocking and in non-blocking mode.
    When the decorated channel is in non-blocking mode, BuffereingWritableByteChannel may behave as in non-blocking mode itself, which is fine by me.
    However the problem is with the residual bytes: they do not get written until the close() method is called.
    I have implemented the close() method to be blocking (the while loop with the ugly yield() calls), so even when the decorated channel is in non-blocking mode everything will get written properly.
    However, writing potentially blocking calls (busy loops) in close() methods seems like a bad idea...
    So the question is:
    Is there a better way of doing this?
    Can I avoid having to write busy loops?
    package nio;
    import java.io.IOException;
    import java.nio.ByteBuffer;
    import java.nio.channels.WritableByteChannel;
    import static nio.ChannelUtils.*;
    public class BufferingWritableByteChannel implements WritableByteChannel {
      private final WritableByteChannel decoratedChannel;
      private final ByteBuffer buffer = ByteBuffer.allocate(4);
      private boolean buffering = true;
      public BufferingWritableByteChannel(WritableByteChannel decoratedChannel) {
        this.decoratedChannel = decoratedChannel;
      public synchronized void close() throws IOException {
        if (buffering) {
          buffer.flip();
        writeBlockingly(decoratedChannel, buffer);
        buffer.clear();
        decoratedChannel.close();
      public synchronized boolean isOpen() {
        return decoratedChannel.isOpen();
      public synchronized int write(ByteBuffer input) throws IOException {
        int bytesWritten = 0;
        if (!buffering) {
          decoratedChannel.write(buffer);
          if (buffer.hasRemaining()) { // May happen when decorated channel in non-blocking mode
            return bytesWritten;
          buffer.clear();
          buffering = true;
        while (input.hasRemaining()) {
          bytesWritten += putAsMuchAsPossible(input, buffer);
          if (!buffer.hasRemaining()) {
            buffer.flip();
            decoratedChannel.write(buffer);
            if (buffer.hasRemaining()) { // May happen when decorated channel in non-blocking mode
              buffering = false;
              return bytesWritten;
            buffer.clear();
        return bytesWritten;
    package nio;
    import java.io.IOException;
    import java.nio.BufferOverflowException;
    import java.nio.ByteBuffer;
    import java.nio.channels.WritableByteChannel;
    public class ChannelUtils {
      private ChannelUtils() {
       * Blockingly writes data to a channel, even if the channel is in non-blocking mode.
      public static final int writeBlockingly(WritableByteChannel channel, ByteBuffer buffer) throws IOException {
        int bytesWritten = 0;
        boolean yield = false;
        while (buffer.hasRemaining()) {
          bytesWritten += channel.write(buffer);
          if (yield)
            Thread.yield();
          else
            yield = true;
        return bytesWritten;
       * Puts as much bytes as possible from an input buffer into an output buffer, avoiding {@link BufferOverflowException}.
      public static final int putAsMuchAsPossible(ByteBuffer input, ByteBuffer output) {
        int bytesWritten = Math.min(input.remaining(), output.remaining());
        ByteBuffer inputSlice = input.slice();
        inputSlice.limit(inputSlice.position() + bytesWritten);
        output.put(inputSlice);
        input.position(input.position() + bytesWritten);
        return bytesWritten;
    }

Maybe you are looking for