Can't stop synchronized threads with I/O read and write

I have two synchronized threads which doing read and write from and into a file.
One thread called "reader" which does reading, encoding, etc from a source file and puts its output in a pre-defined variable. Another called "writer" which puts the reader's output into a file ( not the source file ). Both thread will notify each other when they've finished each of their part. It's similiar to CubyHole example of Java Tutorial example from Sun.
But somehow it seems like the threads keep spawning and won't die. Even if the source file has been all read and the data has been fully written, calling interrupt(), return, etc has no effect. The threads will keep running untill System.exit() called.
Is it because the threads were blocked for I/O operation and the only way to kill them is to close the I/O ?
To be honest, it's not only stop the threads that I want to, I also want to somehow pause the threads manually in the middle of the process.
Is it possible ?
Cheers.!!!

The example code for the problem using 4 classes called :
- libReadWrite ( class holding methods for aplication operations )
- reader ( thread class responsible for reading data )
- writer ( thread class responsible for writing data )
- myGUI ( user interface class )
All of them written in different file.
// libReadWrite
pubic class libReadWrite {
private boolean dataReady;
private String theData;
//read data
public synchronized void read(String inputFile) {
while (dataReady == true) {
try {
wait();
} catch (InterruptedException ex) {}
RandomAccessFile raf = new RandomAccessFile(inputFile, "r"); // I'm using raf here because there are a lot of seek operations
theData = "whatever"; // final data after several unlist processes
dataReady = true;
notifyAll();
public synchronized void write(String outputFile) {
while (dataReady == false) {
try {
wait();
} catch (InterruptedException ex) {}
DataOutputStream output = new DataOutputStream(new FileOutputStream(outputFile, true));
output.writeBytes(theData);
dataReady = false;
notifyAll();
//Reader
public class reader extends Thread {
private libReadWrite myLib;
private String inputFile;
public reader (libReadWrite myLib, String inputFile) {
this.myLib = myLib;
this.inputFile = inputFile;
public void run() {
while (!isInterrupted()) {
myLib.read(inputFile); <-- this code running within a loop
return;
public class writer extends Thread {
private libReadWrite myLib;
private String outputFile;
public writer (libReadWrite myLib, String outputFile) {
this.myLib = myLib;
this.outputFile = outputFile;
public void run() {
while (!isInterrupted()) {
myLib.write(outputFile); <-- this code running within a loop
try {
sleep(int)(Math.random() + 100);
} catch (InterruptedException ex) {}
return;
//myGUI
public class myGUI extends JFrame {
private libReadWrite lib;
private reader readerRunner;
private writer writerRunner;
//Those private variables initialized when the JFrame open (windowOpened)
libReadWrite lib = new libReadWrite();
reader readerRunner = new reader("inputfile.txt");
writer writerRunner = new writer("outputfile.txt");
//A lot of gui stuffs here but the thing is below. The code is executed from a button actionPerformed
if (button.getText().equals("Run me")) {
readerRunner.start();
writerRunner.start();
button.setText("Stop me");
} else {
readerRunner.interrupt();
writerRunner.interrupt();
}

Similar Messages

  • Can you improve the speed of my CSV Reader and Writer?

    hi all, i'm trying to develop a CSV Writer and Reader. i have done a good work to implement the special character and quoting it, it's also support multi line value but it's incredibly slow.
    can someone help to make it faster?
    here it's how to use the writer
    char *stringhe_sorgenti[10] = {0};
    out = OpenFile(nfile, VAL_WRITE_ONLY, VAL_TRUNCATE, VAL_ASCII);
    for(i = 0; i < sizeof(stringhe_sorgenti)/sizeof(char*); i++){
    stringhe_sorgenti[i] = (char*)calloc(200, sizeof(char));
    sprintf(stringhe_sorgenti[0], "example1");
    sprintf(stringhe_sorgenti[1], "example2");
    scrivi_riga_csv(out, stringhe_sorgenti, sizeof(stringhe_sorgenti)/sizeof(char*), formato);
    for(i = 0; i < sizeof(stringhe_sorgenti)/sizeof(char*); i++){
    free(stringhe_sorgenti[i]);
    CloseFile(out);
    here is the writer 
    void scrivi_riga_csv(int file_handle, char *stringa_sorgente[], int numero_stringhe, int formato)
    char delimitatore[2][2] = {{',', '\0'}, {';', '\0'}};
    char stringa_destinazione[1024] = {0};
    int index_destinazione = {0};
    int index_start = {0};
    int index_fine = {0};
    int errore = {0};
    int i = {0};
    //int k = {0};
    size_t lunghezza_stringa = {0};
    for(i = 0; i < numero_stringhe; i++){
    if(i != 0){
    stringa_destinazione[index_destinazione++] = delimitatore[formato][0];
    index_start = 0;
    lunghezza_stringa = strlen(stringa_sorgente[i]);
    // se la stringa sorgente
    if( (FindPattern(stringa_sorgente[i], 0, lunghezza_stringa, delimitatore[formato], 0, 0) != -1) // contiene delimitatore
    || (FindPattern(stringa_sorgente[i], 0, lunghezza_stringa, "\"", 0, 0) != -1) // contiene parentesi
    || (FindPattern(stringa_sorgente[i], 0, lunghezza_stringa, "\n", 0, 0) != -1) // contiene a capo
    // apro parentesi all'inizio
    stringa_destinazione[index_destinazione++] = '"';
    // metodo find pattern, piu' complesso ma piu' performante
    do{ index_fine = FindPattern(stringa_sorgente[i], index_start, lunghezza_stringa - index_start, "\"", 0, 0);
    if(index_fine != -1){
    index_fine++;
    // copio dall'inizio fino alle virgolette
    CopyString (stringa_destinazione, index_destinazione, stringa_sorgente[i], index_start, index_fine - index_start);
    index_destinazione += index_fine - index_start;
    // ne aggiungo una dopo
    stringa_destinazione[index_destinazione++] = '"';
    // aggiorno la posizione di start e riparto con il while
    index_start = index_fine;
    }while(index_fine != -1);
    CopyString (stringa_destinazione, index_destinazione, stringa_sorgente[i], index_start, lunghezza_stringa - index_start);
    index_destinazione += strlen(stringa_sorgente[i]) - index_start;
    // alla fine della riga chiudo la parentesi
    stringa_destinazione[index_destinazione++] = '"';
    else{
    // altrimenti la copio semplicemente e shifto l'indice della stringa di destinazione
    CopyString (stringa_destinazione, index_destinazione, stringa_sorgente[i], 0, lunghezza_stringa);
    index_destinazione += strlen(stringa_sorgente[i]);
    memset(stringa_sorgente[i], 0, strlen(stringa_sorgente[i]));
    errore = WriteLine (file_handle, stringa_destinazione, strlen(stringa_destinazione));
    if(errore == -1){
    errore = GetFmtIOError();
    MessagePopup("WriteLine -> WriteLine", GetFmtIOErrorString(errore));
    return;
     here how to read the file
    char *stringhe_sorgenti[10] = {0};
    for(i = 0; i < sizeof(stringhe_sorgenti)/sizeof(char*); i++){
    stringhe_sorgenti[i] = (char*)calloc(200, sizeof(char));
    out = OpenFile(nomearchivio, VAL_READ_ONLY, VAL_OPEN_AS_IS, VAL_BINARY);
    leggi_riga_csv(out, stringhe_sorgenti, sizeof(stringhe_sorgenti)/sizeof(char*), formato);
    strcpy(intestazione.data, stringhe_sorgenti[1]);
    for(i = 0; i < sizeof(stringhe_sorgenti)/sizeof(char*); i++){
    free(stringhe_sorgenti[i]);
    CloseFile(out);
     and here the reader
    void leggi_riga_csv(int file_handle, char *stringa_destinazione[], int numero_stringhe, int formato)
    char delimitatore[2][2] = {{',', '\0'},
    {';', '\0'}};
    char stringa_sorgente[1024] = {0};
    int stringa_in_corso = {0};
    int index_inizio_valore = {0};
    int index_doublequote = {0};
    int offset_stringa_destinazione = {0};
    size_t lunghezza_stringa = {0};
    int inquote = {0};
    int errore = {0};
    int i = {0};
    for(i = 0; i < numero_stringhe; i++){
    lunghezza_stringa = strlen(stringa_destinazione[i]);
    memset(stringa_destinazione[i], 0, lunghezza_stringa);
    do{ memset(&stringa_sorgente, 0, sizeof(stringa_sorgente));
    errore = ReadLine(file_handle, stringa_sorgente, sizeof(stringa_sorgente) - 1);
    // If ReadLine reads no bytes because it has already reached the end of the file, it returns –2.
    // If an I/O error occurs, possibly because of a bad file handle, ReadLine returns –1.
    // You can use GetFmtIOError to get more information about the type of error that occurred.
    // A value of 0 indicates that ReadLine read an empty line.
    if(errore == -1){
    errore = GetFmtIOError();
    MessagePopup("leggi_riga_csv -> ReadLine", GetFmtIOErrorString(errore));
    return;
    else if(errore == -2){
    errore = GetFmtIOError();
    MessagePopup("leggi_riga_csv -> ReadLine", "already reached the end of the file");
    return;
    else{
    lunghezza_stringa = errore;
    index_inizio_valore = 0;
    // metodo find pattern, piu' complesso ma piu' performante
    for(i = 0; i <= lunghezza_stringa; i++){
    // se come primo carattere ho una " allora e' una stringa speciale
    if(inquote == 0){
    if(stringa_sorgente[i] == '\"'){
    inquote = 1;
    index_inizio_valore = ++i;
    else{
    // altrimenti cerco il delimitatore senza il ciclo for
    i = FindPattern(stringa_sorgente, i, lunghezza_stringa - index_inizio_valore, delimitatore[formato], 0, 0);
    if(i == -1){
    // se non lo trovo ho finito la riga
    i = lunghezza_stringa;
    if(stringa_sorgente[i - 1] == '\r'){
    i--;
    if(stringa_in_corso < numero_stringhe){
    CopyString (stringa_destinazione[stringa_in_corso], 0, stringa_sorgente, index_inizio_valore, i - index_inizio_valore);
    offset_stringa_destinazione = 0;
    stringa_in_corso++;
    if(stringa_sorgente[i] == '\r'){
    i++;
    index_inizio_valore = i + 1;
    if(inquote == 1){
    // se sono nelle parentesi cerco le virgolette
    i = 1 + FindPattern(stringa_sorgente, i, lunghezza_stringa - index_inizio_valore, "\"", 0, 0);
    if(i == 0){
    if(stringa_sorgente[lunghezza_stringa - 1] == '\r'){
    lunghezza_stringa--;
    // se non le trovo ho finito la riga, esco dal ciclo for
    break;
    // se incontro una doppia parentesi salto avanti
    else if(stringa_sorgente[i] == '\"'){
    continue;
    // !!!! fondamentale non cambiare l'ordine di questi else if !!!!!
    // se incontro una parentesi seguita dal delimitatore
    // o se incontro una parentesi seguita dal terminatore
    // \r = CR = 0x0D = 13
    // \n = LF = 0x0A = 10
    // a capo = CR + LF
    else if( (stringa_sorgente[i] == delimitatore[formato][0])
    || (stringa_sorgente[i] == '\r')
    || (stringa_sorgente[i] == '\0')
    // salvo il valore
    inquote = 0;
    if(stringa_in_corso < numero_stringhe){
    CopyString (stringa_destinazione[stringa_in_corso], offset_stringa_destinazione, stringa_sorgente, index_inizio_valore, i - 1 - index_inizio_valore);
    offset_stringa_destinazione = 0;
    stringa_in_corso++;
    if(stringa_sorgente[i] == '\r'){
    i++;
    index_inizio_valore = i;
    // se sono andato a capo scrivo fino a dove sono e poi procedo con la nuova riga
    if(inquote){
    if(stringa_in_corso < numero_stringhe){
    CopyString (stringa_destinazione[stringa_in_corso], offset_stringa_destinazione, stringa_sorgente, index_inizio_valore, lunghezza_stringa - index_inizio_valore);
    strcat(stringa_destinazione[stringa_in_corso], "\n");
    offset_stringa_destinazione += lunghezza_stringa - index_inizio_valore;
    offset_stringa_destinazione++;
    }while(inquote == 1);
    // elimino le doppie parentesi
    for(i = 0; i < numero_stringhe; i++){
    index_doublequote = 0;
    do{ lunghezza_stringa = strlen(stringa_destinazione[i]);
    index_doublequote = FindPattern(stringa_destinazione[i], index_doublequote, lunghezza_stringa - index_doublequote, "\"\"", 0, 0); // contiene doppia parentesi
    if(index_doublequote != -1){
    index_doublequote++;
    memmove (stringa_destinazione[i] + index_doublequote, stringa_destinazione[i] + index_doublequote + 1, lunghezza_stringa - index_doublequote);
    }while(index_doublequote != -1);
    return;

    the format is CSV, i try to explain better what i'm doing.
    our client asked to save acquisition data with header description in an excel readable format, i've decided to use .CSV and not .TDM because it's a simple txt file and we never used .TMD but i will propose to use it.
    after some research on the internet i've found nothing to handle .CSV in CVI except from this csv_parse but i've found it difficult to be maintained so i've write it by my own hand.
    i've written two example of how to use my function to read or write and i've copyed my function used to read and write.
    in the write function i check with FindPattern if the string to be write contain some special character, if i find this i have to quote the string to respect the standard RFC4180 and if i find a quote i have to double it. aftere i've done this check i write the line in the file.
    in the read function, that is more complicated, i:
    check if the first character is a quote.
    if it's not i copy the string until the delimitier or until the end of the line.
    if it is i have a string with special character inside so:
    i find the first quote in the string. when i've found i check if it's follwed by another quote. this means that in the starting message i was writing a single quote.
    if it's not followed by another quote but it's followed by a delimiter or a carriage return i've finished the special line.
    if i don't find it it means that the special quote have a carriage return inside and i have to check the next line. before checking the next line i save this in my string.
    after this loop i check in every string if i have a double quote and i delete one.
    the main problem is in the speed of this, i'm acquiring data at 1000 S/s with 8 active channel for 60 second so i have 480000 data to be stored, divided in 60.000 row and 8 column. to read a file like that my pc stay "locked" for 15 second or more.
    i've tried to use the arraytofile function and it's extremly fast and i can also put header because the function can start from the last position in the file but the filetoarray function start from the beginning and i cannot read the header correctly. also if i'm using the european CSV with semicolon as delimiter with arraytofile i cannot select the semicolon but only the coma

  • Can someone help me create a vi to read and write to an EEPROM using HSDIO?

    I'm trying to create an EEPROM scanner/programmer using a PXI-6541.  I have some EEPROMs with 24 address lines and 16 data lines.  I want to scan addresses 0000h to 8000h and log the data in a file so I can program other EEPROMs with the same data.  Can someone help me get started with this, please?

    Hey jallen_100,
    It sounds like you are trying to do something similar to this Memory Test Reference Design. Check out the code linked at the bottom of the document, and try using part of the code that fits your need, and modify the rest that you don't need, or that won't work with your device. Also, are you going to be using more than the 32 channels of the one board, or will you require 2 devices? If so, then you should check out the Tclk examples, but if not then the above should be enough to get you started. Hope this helps get you started, or at least an idea of what you might be able to do.
    Regards,
    DJ L.

  • Help with how to read and write files to the applets server

    I am writing a form that requires some data to be written serverside(not on the host machine) and I also need to be able to read from those same files.
    Can anyone provide any help?
    I looked into signing but it seems, to me, that signing is for when you are going to be modifying files on the host...

    brianb7590 wrote:
    Would I use that to refer to the file like I would with a regular application?Nope. It's pretty complicated. You've got to set something up on the server to accept requests, get all the data and then save files somewhere and on the client side you've got to make the connection and send the data.
    Edited by: tjacobs01 on Apr 13, 2009 5:49 PM

  • How Can I stop my thread?

    Hi!
    I'm developing an application of computacional geometry. It consist on a JFrame where I put some components like a JToolBar, a JTextArea, etc, and a JPanel. When the JPanel it's painted, there are a button that runs the JPanel in a new Thread.
    The problem is that I have another button to stop the thread, but I can't stop it completely if it is in a I/O operation.
    Here is the code of the run() method:
    public void run()
    Thread thisThread = Thread.currentThread();
    while (kicker == thisThread)
    if (runMode)
    lhull.removeAllElements();
         hull.removeAllElements();
    GrahamScan();
    runMode = false;
    aFrame.doneButton.setEnabled(true);
    stop();
    I stop the thread, but when it's in the GrahamScan() method, it continues painting things in the panel.
    How can I stop the thread completely?
    Thanxs in advance!!

    What's the matter with my line separators and my code indentation?
    Try to use yourThread.interrupt() at your button push event, and this code;
    public void run()
    Thread thisThread = Thread.currentThread();
    try {
    while (kicker == thisThread)
    if (runMode)
    lhull.removeAllElements();
    hull.removeAllElements();
    GrahamScan();
    runMode = false;
    aFrame.doneButton.setEnabled(true);
    stop();
    } catch (InterruptedException iEx){

  • I can't open NEF files with PS Elements9 (Mac) and have just performed all avail. updates

    I can't open NEF files with PS Elements9 (Mac) and have just performed all avail. updates.  What to do?

    Many thanks!!!  This works and is probably the best fix for now.  Thank you!!!
    Date: Wed, 30 Jan 2013 10:58:01 -0800
    From: [email protected]
    To: [email protected]
    Subject: I can't open NEF files with PS Elements9 (Mac) and have just performed all avail. updates
        Re: I can't open NEF files with PS Elements9 (Mac) and have just performed all avail. updates
        created by 99jon in Photoshop Elements - View the full discussion
    For the D600 NEF's you have two alternatives: (1) Upgrade to PSE 11. (2) Download and install the free Adobe DNG converter to convert your raw files to the Adobe universal Raw format and the files will open in all versions of PSE (keep your originals as backups and for use in the camera manufactures software)  Windows download click here DNG Converter 7.3  Mac download click here DNG Converter 7.3  You can convert a whole folder of raw images in one click. See this quick video tutorial: You Tube click here for DNG Converter tutorial
         Please note that the Adobe Forums do not accept email attachments. If you want to embed a screen image in your message please visit the thread in the forum to embed the image at http://forums.adobe.com/message/5034913#5034913
         Replies to this message go to everyone subscribed to this thread, not directly to the person who posted the message. To post a reply, either reply to this email or visit the message page: http://forums.adobe.com/message/5034913#5034913
         To unsubscribe from this thread, please visit the message page at http://forums.adobe.com/message/5034913#5034913. In the Actions box on the right, click the Stop Email Notifications link.
         Start a new discussion in Photoshop Elements by email or at Adobe Community
      For more information about maintaining your forum email notifications please go to http://forums.adobe.com/message/2936746#2936746.

  • The gyroscope of my IPAD2  stopped working either with Real Racing 2HD and SAFARI, how do I proceed?

    The gyroscope of my Ipad 2 suddenly stopped working ( either with Real Racing 2HD and Safari ). How do I proceed to fix it.
    Thanks

    If you want to sync content that is on your iPod Classic to your iPad, it needs to be in your iTunes library first, if it isn't already.  From there, you can configure your iPad to sync all this content from under the appropriate tabs.
    If you need help on how to copy content from the iPod Classic back to your PC, see this older post from another forum member Zevoneer covering the different methods and software available to assist you with this task.
    https://discussions.apple.com/thread/2452022?start=0&tstart=0
    B-rock

  • My laptop died so I've installed itunes onto another PC and my music is all on an external hardive which is connected to the new PC. How can I sync my ipod with the new itunes and get all the music onto itunes?

    My laptop died so I've installed itunes onto another PC and my music is all on an external hardive which is connected to the new PC. How can I sync my ipod with the new itunes and get all the music onto itunes?

    You might consider itunes match for moving CDs you've copied into your itunes library if you dont have a way to use home sharing.
    iTunes match is an optional service offered by apple that costs about $25 a year.  It scans your music library and if it finds music that is already in apple's itunes catalog it'll automatically "unlock"/"store" these in the cloud for you.  Items that it does not find in the catalog it'll upload and store these in the cloud for you and you can download them on your devices.  See http://www.apple.com/itunes/itunes-match/

  • How can I stop my iPhone from synching my contacts and groups lists twice?

    How can I stop my iPhone from synching my contacts and groups lists twice....I am using iCloud but am not sure how correct this duplication.

    Go into Settings>Mail, Contacts, Calendars. Is this happening at the bottom in the signature section, or in the header of the mail where your email address is? If it is the signature, then go to the Signature area of the Mail settings. If this is in the header, then go to the account in question and edit your account information to include your name instead of Johnny.

  • I am considering a Apple iMac but would be interested in adding a second monitor. Does it have to be an Apple monitor or can i add any monitor with a thunderbolt cable and DVI or vGA adapter?

    I am considering a Apple iMac but would be interested in adding a second monitor. Does it have to be an Apple monitor or can i add any monitor with a thunderbolt cable and DVI or vGA adapter?

    I found that the Thunderbolt input accepts the mini-DVI (in my case converter to VGA for a tutorial use monitor)
    BUT, you have to really oush it in 'til it clicks.  I thought it too loose until I tried it.  works just fine!!
    i get a solved for my own  LOL
    Ed

  • Can i use iCloud keychain with my own passwords and not with what is assigned and stored?

    Can i use iCloud keychain with my own passwords and not with what is assigned and stored?

    tammersalem wrote:) <-HDMI-> (HDTV)
    My main concerns are:
    -If I use iTunes on my main computer, will it then be available to Apple TV?
    -If I use Apple TV to download will it be available to my Main computer?
    -Can the Apple TV use a media server for storage over LAN (using NTFS Samab or otherwise)?
    Basically iTunes feeds AppleTv with media either syncing (copying to it) or streaming live.
    Media must be compatible with AppleTV.
    AppleTV requires a proper iTunes instance running - it cannot access a NAS directly.
    If you store media in a folder on a NAS and it's part of the computer iTunes library (just stored on the NAS vs internal/external drive), then when running iTunes makes this content available to AppleTV.
    Data will travel:
    NAS > network > iTunes > network to AppleTV
    As the path is potentially slower than internal/external attached drive > iTunes > network > AppleTV, it may or may not work robustly for streaming.
    If AppleTv is set to sync (it can also stream in this mode), when you purchase direct on AppleTV, the media should sync back to where the itunes library is stored (via iTunes) to keep things in sync and to allow you to backup the media.
    You cannot drag/drop media to/from AppleTv across the network, nor can it directly access storage itself - iTunes is an essential cog in the wheel.
    The majority of commercial 'in-built iTunes media servers' will not work directly with AppleTV as it has to be 'paired' with iTunes by entering a numerical code in iTunes and does not simply see 'shared libraries'.

  • HT201335 can i use air play with my macbook pro and apple tv

    can i use air play with my macbook pro and apple tv

    AirPlay Mirroring requires a second-generation Apple TV or later, OS X 10.8 or better and is supported on the following Mac models: iMac (Mid 2011 or newer), Mac mini (Mid 2011 or newer), MacBook Air (Mid 2011 or newer), and MacBook Pro (Early 2011 or newer). It also requires the computer to be using wi-fi.

  • Just bought a mac air with OS X v.10.7 Lion, for work I need to read and write NTFS drives, I install MacFuse and NTFS-3G, but it can not mount (recognize?) External HDD, in my MBP with Snow Lepard it work just perfectly... help please.

    Just bought a mac air with OS X v.10.7 Lion, for work I need to read and write NTFS drives, I install MacFuse and NTFS-3G, but it can not mount (recognize?) External HDD, in my MBP with Snow lepard it work just perfectly... help please.

    Reinstall MacFuse with the one from http://www.tuxera.com/mac/macfuse-core-10.5-2.1.9.dmg. If that doesn't work, you can use Paragon NTFS for Mac 9.0 which has been designed to work with Lion.

  • Just bought a mac air with OS X v.10.7 Lion, for work I need to read and write NTFS drives, I install MacFuse and NTFS-3G, but it can not mount (recognize?) External HDD, in my MBP with Lion it work just perfectly... help please.

    Just bought a mac air with OS X v.10.7 Lion, for work I need to read and write NTFS drives, I install MacFuse and NTFS-3G, but it can not mount (recognize?) External HDD, in my MBP with Lion it work just perfectly... help please.

    Sorry in my MBP Snow lepard it work.. don't have Lion In MBP

  • I cannot update from OS 10.9.4 to 10.9.5. I get a message saying: File couldn't be installed error (513). I have configured my OS so that I have read and write permission followed by system with read and writ permission. Can someone help me? Thanks.

    I cannot update from OS X 10.9.4 t0 10.9.5> Whenever I try I get the following message: File couldn't be installed error (513) and something about not having the proper permission.  Under the Macintosh HD sharing and permissions settings I have customized the settings so that (Me) has read and write permission followed by the system with read and write permission, wheel and everyone have Read permissions.
    I have no problems updating apps such as Adobe CC or iTunes but cannot update the operating system, can someone help me? Thanks.

    1. Restart the computer in safe mode. Certain caches maintained by the system will be rebuilt.
    Safe mode is much slower to start up than normal. The next normal startup may also be somewhat slow.
    When the login screen appears, restart as usual (not in safe mode) and test. There's no need to log in while in safe mode.
    Note: If FileVault is enabled, or if a firmware password is set, or if the startup volume is a software RAID, you can’t start in safe mode. In that case, go to Step 2.
    If there's no change after taking this step, continue.
    2. Back up all data before proceeding.
    Triple-click anywhere in the line below on this page to select it:
    /var/folders
    Right-click or control-click the highlighted line and select
              Services ▹ Reveal in Finder (or just Reveal)
    from the contextual menu.* A folder should open with an item named "folders" selected. Move the selected item to the Trash. You may be prompted for your administrator login password. Restart the computer and empty the Trash.
    *If you don't see the contextual menu item, copy the selected text to the Clipboard by pressing the key combination  command-C. In the Finder, select
              Go ▹ Go to Folder...
    from the menu bar and paste into the box that opens by pressing command-V. You won't see what you pasted because a line break is included. Press return.

Maybe you are looking for

  • How can I delete multiple contacts at one time?

    I want to delete multiple contacts at once and I can't figure out how to do it.  Can someone help please?

  • RFC connection to source system is damaged , no Metadata uploaded

    Hello Friends, I need your help to understand and rectify why my transport is failing again and again. RFC connection to source system BT1CLNT200 is damaged ==> no Metadata upload Environment - Production Support (Dev - Quality - Testing - Production

  • Problem with vmfex vcenter integration

    I am having a problem with setting up vcenter with ucs. I went through the wizard, exported the xml and rgistered that successfully in vcenter then proceedd to create the datacenter, dvsfolder and dvs but came back with an error

  • HT4528 iphone calendar sync help

    I have many google calendars and all show up in my calender setting (iphone). I've chosen my primary calender with the radio button but in my "notification" screen multiple calendars show up??? how do i fix this?

  • PC PLANNING

    Hi, In CK11N for a material the price is pulling up from a net quatation price rather than Puchase order price. In purchase info record I can see both the values. In the valuation variant the config is 1. PO price 2. Net quatation my assumption is on