Why did CCArmatureDataManager addFileInfoAsync just parse Json file in another thread?

Why did CCArmatureDataManager addFileInfoAsync just parse Json file in another thread?
The rest plist files and png files are still be loaded in main thread.

@    // Auto load sprite file
    bool autoLoad = dataInfo == NULL ? CCArmatureDataManager::sharedArmatureDataManager()->isAutoLoadSpriteFile() : dataInfo->asyncStruct->autoLoadSpriteFile;
    if (autoLoad)
    {
        length = json.getArrayItemCount(CONFIG_FILE_PATH);
        for (int i = 0; i < length; i++)
        {
            const char *path = json.getStringValueFromArray(CONFIG_FILE_PATH, i);
            if (path == NULL)
            {
                CCLOG("load CONFIG_FILE_PATH error.");
                return;
            }

            std::string filePath = path;
            filePath = filePath.erase(filePath.find_last_of("."));

            if (dataInfo != NULL)
            {
                dataInfo->configFileQueue.push(filePath);
            }
            else
            {
                std::string plistPath = filePath + ".plist";
                std::string pngPath =  filePath + ".png";

                CCArmatureDataManager::sharedArmatureDataManager()->addSpriteFrameFromFile((s_BasefilePath + plistPath).c_str(), (s_BasefilePath + pngPath).c_str());
            }
        }
    }@

This code from CCDataReaderHelper show that when dataInfo is not NULL, current thread just push the plist files which will be loaded later info to the configFileQueue. And in the above code dataInfo is always not NULL.
So does this mean CCArmatureDataManager::addArmatureFileInfoAsync method just parse Json file in non-main thread, and rest of the work still be completed in main thread?

And even if dataInfo is NULL which make the code just addSpriteFrame in this non-main thread, what about opengl’s rule of create texture in rendering thread? This would make the loaded texture unsafe, right?

Actually I encountered a problem that game’s rendering thread can not be blocked when my game loading another armature file info. How would I do to make a real async armature data info loading?