{
ActivationScope ascope;
- if (!DaemonUtility::ValidateConfigFiles(configs, objectsFile))
+ if (!DaemonUtility::ValidateConfigFiles(configs, objectsFile)) {
+ ConfigCompilerContext::GetInstance()->CancelObjectsFile();
return false;
+ }
WorkQueue upq(25000, Application::GetConcurrency());
bool result = ConfigItem::CommitItems(ascope.GetContext(), upq, newItems);
- if (!result)
+ if (!result) {
+ ConfigCompilerContext::GetInstance()->CancelObjectsFile();
return false;
+ }
ConfigCompilerContext::GetInstance()->FinishObjectsFile();
ScriptGlobal::WriteToFile(varsfile);
}
}
+void ConfigCompilerContext::CancelObjectsFile(void)
+{
+ m_ObjectsFP->Close();
+ m_ObjectsFP.reset();
+
+#ifdef _WIN32
+ _unlink(m_ObjectsTempFile.CStr());
+#else /* _WIN32 */
+ unlink(m_ObjectsTempFile.CStr());
+#endif /* _WIN32 */
+}
+
void ConfigCompilerContext::FinishObjectsFile(void)
{
m_ObjectsFP->Close();
public:
void OpenObjectsFile(const String& filename);
void WriteObject(const Dictionary::Ptr& object);
+ void CancelObjectsFile(void);
void FinishObjectsFile(void);
static ConfigCompilerContext *GetInstance(void);